2011-06-23 170 views
2

在我的程序中,我在服务器上有几个套接字。每个套接字都有自己的端口。我试图发现,如果客户端关闭与连接:C++检测客户端是否关闭连接(多套接字)

signal(SIGPIPE, sig_pipe); 

,但我有我不知道在哪个插座连接关闭的问题。 有一些方法可以让它知道吗?

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

谢谢。

回答

3

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

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

+0

我使用“发送”命令,但我也可以通过“发送”命令来处理EPIPE错误。 http://www.gnu.org/s/hello/manual/libc/Sending-Data.html谢谢 –

+0

是的,这就是“和喜欢”的意思:) –

相关问题