我正在使用epoll作为关卡触发。根据{{3}},如果recv
返回0
,则“没有消息可用于接收且对等方已执行有序关闭”。这是否意味着已收到整个请求且另一方已关闭套接字?套接字两端都已关闭?或者只是收到整个请求并且套接字正在等待写入响应?任何帮助将不胜感激。
根据recv(3),听起来如果recv
返回0
,则连接在另一侧关闭。如果是这种情况,需要在epoll方面做些什么?是否需要通过epoll_ctl
调用EPOLL_CTL_DEL
以及调用close
来完全删除套接字?
答案 0 :(得分:4)
这意味着您已经读取了连接后发送的所有数据,唯一剩下的就是TCP FIN,这可能是远程完全关闭或者关闭输出的结果。远程。除非你知道对等只有关闭,否则你不能做多少但是关闭套接字,在这种情况下你仍然可以写入套接字。您的应用程序协议确定了所有这些。
TCP中没有请求或响应。只有一个双向字节流。