![](https://img-blog.csdnimg.cn/20201014180756780.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
网络编程
胖佳儿Clara
微信:zejia98,期待和你成为朋友
展开
-
【HTTP】HTTP解析
首先我们来看一下HTTP报文的结构解析请求行int process_status_line(char *start, char *end, struct http_request *httpRequest) { int size = end - start; //method char *space = strstr(start," "); assert(space != NULL); int method_size = space - start; httpRequest->met原创 2020-08-10 17:19:59 · 162 阅读 · 0 评论 -
【网络编程】线程池并发服务器
线程池思路threadpool_t结构体struct threadpool_t { pthread_mutex_t lock; pthread_mutex_t thread_counter; //busy_thread_num修改时加解锁 pthread_cond_t queue_not_full; pthread_cond_t queue_not_empty; pthread_t *thread; //线程数组 pthread_t adjust_t原创 2020-05-13 18:13:04 · 321 阅读 · 0 评论 -
【linux】线程同步
互斥锁主要应用函数pthread_mutex_init静态初始化:如果互斥锁 mutex 是静态分配的(定义在全局,或加了static关键字修饰),可以直接使用宏进行初始化。 pthead_mutex_t muetx = PTHREAD_MUTEX_INITIALIZER;动态初始化:局部变量应采用动态初始化。pthread_mutex_init(&mutex, NULL)pthread_mutex_lock函数加锁。可理解为将mutex–(或-1)int pth原创 2020-05-09 22:17:29 · 151 阅读 · 0 评论 -
【Linux】线程
概述相当于一个正在运行的函数线程有独立的PCB,但是多个线程共享内存最小执行单位。而进程是最小的分配资源单位创建线程相关API作用:对应进程中fork() 函数。int pthread_create(pthread_t *thread, const pthread_attr_t *attr, void *(*start_routine) (void *), void *arg);...原创 2020-05-08 20:47:14 · 155 阅读 · 0 评论 -
【网络编程】多路I/O转接服务器之epoll
最近学习网络编程相关,学习资源在b站搜索【linux网络编程】。本文章记录相关学习心得。相关API创建一个epoll句柄,参数size用来告诉内核监听的文件描述符的个数,跟内存大小有关。此步骤创建一个建议大小为size的红黑树(二叉平衡树),返回值为根结点的fd #include <sys/epoll.h> int epoll_create(int size) si...原创 2020-04-28 21:44:25 · 204 阅读 · 1 评论 -
【网络编程】多路I/O转接服务器之poll
最近学习网络编程相关,学习资源在b站搜索【linux网络编程】。本文章记录相关学习心得。主要结构#include <poll.h>int poll(struct pollfd *fds, nfds_t nfds, int timeout); struct pollfd { int fd; /* 文件描述符 */ short events; ...原创 2020-04-28 19:54:17 · 262 阅读 · 2 评论 -
【网络编程】多路I/O转接服务器之select
·原创 2020-04-27 19:45:29 · 195 阅读 · 0 评论 -
【网络编程】实现一个简单的多进程并发服务器
最近学习网络编程相关,学习资源在b站搜索【linux网络编程】。本文章记录相关学习心得。Socket发送端和接收端成对出现绑定ip + portsocket为linux中的伪文件一个文件描述符有2个缓冲区,一读一写sockaddr_in 结构体struct sockaddr_in { __kernel_sa_family_t sin_family; /*...原创 2020-04-20 01:38:56 · 595 阅读 · 4 评论