繁体   English   中英

epoll recv返回值

[英]epoll recv return value

我正在使用epoll作为触发级别。 根据recv(3) ,如果recv返回0 ,则“没有消息可接收并且对等方已执行有序关闭”。 这是否意味着已收到整个请求,并且另一端的套接字已关闭? 插座的两端都闭合了吗? 还是仅仅是接收到整个请求,而套接字正在等待写入响应? 任何帮助将不胜感激。

根据什么值recv()return ,听起来好像recv返回0 ,则在另一侧关闭了连接。 如果是这种情况,那么在epoll方面需要做什么? 是否需要通过使用EPOLL_CTL_DEL调用epoll_ctl和调用close来完全删除套接字?

这意味着您已经读取了通过连接发送的所有数据,剩下的唯一就是TCP FIN,这可能是由于远程完全关闭或远程关闭了输出所导致的。 您不能做很多事,但此时必须关闭套接字,除非您知道对等方仅已关闭,在这种情况下,您仍然可以写入套接字。 您的应用协议决定了所有这些。

TCP中没有请求或响应之类的东西。 只有双向字节流。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM