I/O复用:select和poll函数
博客专区 > QMonkey 的博客 > 博客详情
I/O复用:select和poll函数
QMonkey 发表于3年前
I/O复用:select和poll函数
  • 发表于 3年前
  • 阅读 10
  • 收藏 0
  • 点赞 0
  • 评论 0

腾讯云 新注册用户 域名抢购1元起>>>   

TCP客户同时处理两个输入:标准输入和TCP套接字。我们遇到的问题就是在客户阻塞于fgets调用期间,服务器进程会被杀死。服务器TCP虽然正确地给客户TCP发送了一个FIN,但是既然客户进程正阻塞于标准输入读入的过程,它将看不到这个EOF,直到从套接子读取为止。这样的进程需要一种预先告知内核的能力,使得内核一旦发现进程指定的一个或多个I/O条件就绪(也就是说输入已准备好读取,或者描述符已能承受更多的输出),它就通知进程。这个能力成为I/O复用。


有些系统提供了更为先进的让进程在一串事件上等待的机制。轮询设备就是这样的机制之一。


I/O复用典型使用在下列网络应用场合。
(1)当客户处理多个描述符(通常是交互式输入和网络套接字)时,必须使用I/O复用。
(2)一个客户同时处理多个套接字是可能的,不过比较少见。
(3)如果一个TCP服务器既要处理监听套接字,又要处理已连接套接字,一般就要使用I/O复用。
(4)如果一个服务器既要处理TCP,又要处理UDP,一般就要用I/O复用。
(5)如果一个服务器要处理多个服务或者多个协议,一般就要使用I/O复用。
共有 人打赏支持
粉丝 0
博文 8
码字总数 8066
×
QMonkey
如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
* 金额(元)
¥1 ¥5 ¥10 ¥20 其他金额
打赏人
留言
* 支付类型
微信扫码支付
打赏金额:
已支付成功
打赏金额: