【发布时间】:2014-10-24 13:11:01
【问题描述】:
在边缘触发模式下使用 epoll 时,如果一个套接字中有 2KB 的数据,而您只从中读取 1KB,则执行 epoll_wait() 时将不会收到另一个通知。如果我想收到未读数据的另一个通知,我会怎么做?我认为从 epoll 集中删除 fd 然后再次添加它会起作用,但是有更好的方法吗?
【问题讨论】:
在边缘触发模式下使用 epoll 时,如果一个套接字中有 2KB 的数据,而您只从中读取 1KB,则执行 epoll_wait() 时将不会收到另一个通知。如果我想收到未读数据的另一个通知,我会怎么做?我认为从 epoll 集中删除 fd 然后再次添加它会起作用,但是有更好的方法吗?
【问题讨论】:
根据其定义,边缘触发模式不能满足您的需求。根据您的描述,您应该改用关卡触发模式。
您的问题类似于“我如何使用fread() 写入文件?”你不能,因为使用写入文件是错误的。
【讨论】: