假设本地Linux主机上的TCP套接字处于已连接状态,并且正在使用epoll_wait来通知本地主机与远程主机之间的套接字事件。如果远程主机调用:
shutdown(s,SHUT_WR);
当一个连接的套接字完成传输时,在本地主机上,epoll_wait会返回哪些事件来指示它已完成传输?
我假设EPOLLIN总是被返回,并且随后的recv调用将返回0以指示远程方已经完成传输。
那么EPOLLHUP或EPOLLRDHUP呢?这两个事件有什么区别?
EPOLLERR呢?
如果远程主机调用"close"而不是"shutdown",上述任何答案是否会改变?