![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Linux网络编程
文章平均质量分 71
shlyyy
Keep Coding
展开
-
Linux网络编程5-epoll模型
用实验验证ET:可以在上面epoll代码读客户端发送的数据时,read读取2字节,假如客户端发送了8字节数据,则会只读两个字节以后返回,第二次循环到epoll_wait时,虽然还有数据,但内核没有通知,因此数据没有完全读完。ET边缘触发: 电平有变化就代表1:缓冲区中有数据只会通知一次, 之后再有数据才会通知.(若是读数据的时候没有读完, 则剩余的数据不会再通知, 直到有新的数据到来)若将epoll设置为ET模式,若读数据的时候一次性没有读完,则epoll_wait不再通知,直到下次有新的数据发来.原创 2023-10-06 21:23:43 · 103 阅读 · 0 评论 -
Linux网络编程4-poll模型
【代码】Linux网络编程4-poll模型。原创 2023-10-06 21:19:22 · 110 阅读 · 0 评论 -
Linux网络编程3-select模型
select最大支持1024个客户端连接不是有文件描述符表最多可以支持1024个文件描述符限制的, 而是由FD_SETSIZE=1024限制的.例如: 作为极端的一种情况, 3-1023文件描述符全部打开, 但是只有1023有发送数据, select就显得效率低下。FD_SETSIZE=1024 fd_set使用了该宏, 当然可以修改内核, 然后再重新编译内核.3.当客户端多个连接, 但少数活跃的情况, select效率较低。4.最大支持1024个客户端连接。1.一个进程可以支持多个客户端。原创 2023-10-05 18:37:38 · 184 阅读 · 0 评论 -
Linux网络编程2-多进程和多线程版本服务器
解决方法2:使用多进程: 让父进程监听接受新的连接, 子进程处理新的连接(接收和发送数据);父进程还负责回收子进程。原创 2023-10-05 18:21:43 · 641 阅读 · 0 评论 -
Linux网络编程1-简单的CS通信程序
accept函数是从已连接队列中取出一个通信,可以在调用accept函数之前sleep一分钟,在此期间,执行客户端连接到服务器,查看端口监听状态,sleep结束后会accept,然后再查看端口监听状态。当调用socket函数以后, 返回一个文件描述符, 内核会提供与该文件描述符相对应的读和写缓冲区, 同时还有两个队列, 分别是。, 并获得一个新的文件描述符, 该文件描述符用于和客户端通信. (内核会负责将请求队列中的连接拿到已连接队列中)accept函数是一个阻塞函数, 若没有新的连接请求, 则一直阻塞。原创 2023-10-05 18:08:15 · 254 阅读 · 0 评论