如何解决c ++检测客户端是否关闭了连接多个套接字
| 在我的程序中,服务器上有多个套接字。每个插槽都有自己的端口。我试图检测客户端是否通过以下方式关闭了连接:signal(SIGPIPE,sig_pipe);
但是我有一个问题,我不知道连接是在哪个套接字上关闭的。
有什么方法可以了解它吗?
有关代码的更多信息:
在主程序中,我在不同的端口上启动了3个套接字。接受,接收和发送我放入一个线程的每个套接字。所以我最后有3个线程。
谢谢。
解决方法
您应该设置
SIGPIPE
以使其被忽略(请参阅sigaction(2)
),并处理write(2)
等中的EPIPE
错误代码。
请注意,从TCP套接字读取零字节是另一端关闭连接的真实指示。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。