LINUX系统编程
恁村扛把子
这个作者很懒,什么都没留下…
展开
-
分别使用select、poll、epoll实现echo服务器
1. 封装一些必要的C/S架构头文件(放在common文件夹中)common├── head.h├── common.c├── common.h├── tcp_client.c//可以省略├── tcp_client.h//可以省略,后面用telnet来测试就行├── tcp_server.c├── tcp_server.hhead.h#ifndef HEAD_H#define HEAD_H#include <stdio.h>#include <stdlib.原创 2021-01-01 13:00:38 · 312 阅读 · 1 评论 -
带你深度理解select、poll和epoll区别
1、IO复用模型2、目前的常用的IO复用模型有三种:select,poll,epoll(1)select时间复杂度O(n)他仅仅知道有I/O事件发生了,却不知道是哪那几个流(可能有一个,多个,甚至全部),我们只能无差别轮询所有的流,找出能读出数据,或者能写入数据的流,对他们进行操作。所以select具有o(n)无差别轮询的时间复杂度,同时处理的流越多,无差别轮询时间就越长。(2)poll时间复杂度O(n)poll本质上与select没有区别,他讲用户传入的数组拷贝到内核空间,然后查询每个fd对应原创 2020-12-31 18:14:28 · 1691 阅读 · 2 评论