网络开发
文章平均质量分 74
试图图
这个作者很懒,什么都没留下…
展开
-
Reactor的原理与实现
Reactor释义“反应堆”,是一种事件驱动机制。和普通函数调用的不同之处在于:应用程序不是主动的调用某个API完成处理,而是恰恰相反,Reactor逆置了事件处理流程,应用程序需要提供相应的接口并注册到Reactor上,如果相应的事件发生,Reactor将主动调用应用程序注册的接口,这些接口又称为“回调函数”。 Reactor模式是处理并发IO比较常见的一种模式,用于同步IO,中心思想是将所有要处理的IO事件注册到一个中心IO多路复用器上,同时主线程/进程阻塞在多路...原创 2021-12-29 18:59:12 · 679 阅读 · 0 评论 -
C 实现TCP服务端(select、poll、epoll)
使用C简单的实现一个tcpserver,包括常规server、多线程实现server、select实现server、poll实现server、epoll实现server。常规模式#define MAXLEN 4096int main(int argc, char **argv) { int listenfd, connfd, n; struct sockaddr_in servaddr; char buff[MAXLEN]; if ((listenfd ...原创 2021-12-23 19:14:40 · 2320 阅读 · 0 评论 -
网络IO模型
网络IO会涉及到两个系统对象,一个时用户空间调用IO的进程或线程,另一个时内核空间的内核系统,网络IO本质是socket的读取,比如发生IO操作read时,会经历两个阶段:等待数据准备就绪; 将数据从内核拷贝到进程或者线程; Unix的五种I/O网络模型:阻塞IO (blocking IO); 非阻塞IO (non-blocking IO); 多路复用IO (IO multiplexing); 异步IO (Asynchronous IO); 信号驱动IO (...原创 2021-12-23 16:05:45 · 1264 阅读 · 0 评论