当N个socket与一个监听socket连接时,epoll_wait()会通知进程多少次?
成功时,epoll_wait(2)返回 准备好的文件描述符的数量 用于请求的 I/O,如果没有则为零 文件描述符在期间准备就绪 请求的超时毫秒数。 当发生错误时,epoll_wait(2) 返回 -1 并设置 errno 适当地。
假设epoll是ET触发的,对于N个连接的socket,epoll_wait
会通知进程N次还是只通知一次?
When successful, epoll_wait(2) returns
the number of file descriptors ready
for the requested I/O, or zero if no
file descriptor became ready during
the requested timeout milliseconds.
When an error occurs, epoll_wait(2)
returns -1 and errno is set
appropriately.
Suppose the epoll is ET triggered,will epoll_wait
notify the process N times for N connected sockets or only once?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
如果 N 个客户端同时连接并且您接受所有客户端,则会发生进一步的通知。如果 N 个客户端连接并且您接受 N-1 个客户端,则在您消耗完所有事件之前不会发生通知。
If N clients connect at the same time and you accept all of them, further notifications will happen.. if N clients connect and you accept N-1 no notifications will happen until you consume all events..
对于每个具有您请求的 IO 事件的套接字,您将收到一个通知。当然,epoll_wait 每次调用可以传递多个通知。
You will get one notification per socket that has an IO event you asked for. Ofcourse, epoll_wait can deliver more than one notification per call.