gpt4 book ai didi

c - epoll recv 返回值

转载 作者:行者123 更新时间:2023-12-03 11:51:28 25 4
gpt4 key购买 nike

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

根据What value will recv() return ,听起来像 recv返回 0 ,连接在另一侧关闭。如果是这样的话,epoll端需要做什么呢?是否需要通过调用 epoll_ctl 来完全移除套接字?与 EPOLL_CTL_DEL并调用close ?

最佳答案

这意味着您已经读取了通过连接发送的所有数据,唯一剩下的就是一个 TCP FIN,这可能是远程完全关闭或远程关闭输出的结果。此时除了关闭套接字之外,您无能为力,除非您知道对等方只有关闭,在这种情况下您仍然可以写入套接字。您的应用程序协议(protocol)决定了这一切。

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

关于c - epoll recv 返回值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9747646/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com