IO复用是一种机制,一个进程可以监听多个描述符,一旦某个描述符就绪(读就绪和写就绪),能够同志程序进行相应的读写操作。 目前支持I/O复用的系统调用有select,poll,pselect,epoll,本质上这些I/O复用技术是同步I/O技术。在读写事件就绪后需要进程自己负责进行读写,即读写过程是进... ...
分类:
其他好文 时间:
2019-04-17 00:11:29
阅读次数:
156
一、需求 把https://www.cnblogs.com/soldierback/p/10673345.html中的TCP回射服务器程序重写成使用select来处理任意个客户的单进程 程序,而不是为每个进程派生一个子进程 二、分析 (1)服务器有单个监听描述符 (2)服务器只维护一个读描述符集;假 ...
分类:
系统相关 时间:
2019-04-14 14:21:46
阅读次数:
185
构建并发服务器的方法:在父进程中接收客户端连接请求,然后创建一个新的子进程来为每个新客户端提供服务。 假设现在有两个客户端和一个服务器,服务器正在监听一个监听描述符上的连接请求。并发过程如下: 1、服务器接受客户端1的连接请求 2、服务器派生一个子进程为这个客户端1服务 3、服务器接受另一个客户端2 ...
分类:
其他好文 时间:
2019-01-27 19:21:14
阅读次数:
181
Poll 函数接口 基本操作 注意事项 是描述符数组, 是监听描述符的个数, 是以毫秒为单位的超时值 返回事件发生的描述符的总数。 使用结束后,用户对刚刚传入的描述符数组进行轮询测试,看看那个pollfd上的事件已经改变了。 POLLHUP 和 POLLHUP 不管有没有设置都是默认监听的。 事件类 ...
分类:
其他好文 时间:
2018-06-16 19:11:08
阅读次数:
175
socket,bind,listen 三个函数创建监听描述符
分类:
其他好文 时间:
2018-03-18 11:54:08
阅读次数:
181
server: socket()->bind()->listen()->FD_SET()->select()->accept()->FD_SET()->select()->read(). 1、监听制定端口,地址。 2、将监听描述符设置到读描述符集中,用select获取是否有可读状态。 3、当sele ...
分类:
其他好文 时间:
2016-04-17 20:34:43
阅读次数:
129
Tiny Web服务器代码分析
《深入理解计算机系统》中开发了一个小但是功能齐全的称为Tiny的web服务器,这里是Tiny服务器的源码解析。
1.Tiny的main程序
Tiny是一个迭代服务器,通过命令行中传递来的端口值,调用Open_listenfd()函数打开一个监听套接字,然后Tiny执行无限循环:服务器阻塞在accept,等待监听描述符listenfd上的连接请求,当服务器从a...
分类:
Web程序 时间:
2015-04-09 22:00:55
阅读次数:
211