c ++检测客户端是否关闭连接(多个套接字)

时间:2011-06-23 20:22:02

标签: c++ sockets connection

在我的程序中,我在服务器上有几个套接字。每个插槽都有自己的端口。我试图检测客户端是否关闭了连接:

signal(SIGPIPE, sig_pipe);

但我遇到的问题是我不知道连接关闭的是哪个套接字。 是否有一些方法可以让它知道?

有关代码的更多信息: 在主程序中,我在不同的端口上启动了3个套接字。接受,接收和发送我放在一个线程中的每个套接字。所以我最后有3个帖子。

谢谢。

1 个答案:

答案 0 :(得分:3)

您应该设置SIGPIPE被忽略(请参阅sigaction(2))并处理来自write(2)等的EPIPE错误代码。

请注意,从TCP套接字读取零字节是另一方关闭连接的真实指示。