【发布时间】:2016-10-03 20:04:47
【问题描述】:
我有一个服务器应用程序,它侦听一个端口,接受 (TCP) 对等连接,然后为每个套接字接受它
1)reads(不超过30字节数据)
2) sends (1 字节确认)
3) reads(不超过 2K)
4) sends (1 字节确认)
5)closes(连接)
我在我的应用程序中使用epoll 循环。我希望 epoll_wait 返回(带有 EPOLLIN 标志的事件列表)仅当所有数据都从对等方到达时,以便我可以通过单个 read/recv 调用读取数组。如果某个套接字 fd 上没有收到所有数据,我不希望 epoll 将此 fd 添加到事件列表中。
据我了解,epoll 的电平触发模式和边缘触发模式之间的差异可以使用边缘触发的epoll 来实现,该模式具有非阻塞套接字和有限状态以跟踪步骤。
如果我对边缘触发选项有误,请纠正我。任何想法?
【问题讨论】: