繁体   English   中英

Linux select()如何工作?

[英]How linux select() works?

有人可以向我解释select()工作方式吗? 我的思维模式错误,无法从手册页中了解。

如果我的客户端具有多个连接到不同服务器的套接字,并且正在定期从服务器读取一些信息,那么内核如何知道要读取哪个套接字标记? 他怎么知道哪个套接字read()不会被阻塞? 我认为,如果它实际上不从服务器读取数据,则无法预测。

内核没有任何预测。 它告诉您套接字的接收缓冲区的当前状态。 如果缓冲区不为空,则套接字是可读的。 如果缓冲区为空,则select()等待。 当数据包从服务器到达时,内核会使用IP地址,协议和端口号将其与正确的套接字匹配。 数据包被放入套接字的接收队列中,并通知select()状态已更改。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM