我在SuSE Linux Enterprise Server 12.3 (x86_64)上用C 语言编写了一个多客户端服务器程序,每个客户端使用一个线程来接收数据。
我的问题是:
我使用一个终端运行服务器,并使用其他几个终端连接telnet
到我的服务器(作为客户端)。我recv()
在服务器中使用过从客户端接收数据,我还应用了检查返回值recv()
ie Error on -1
; 康涅狄格州关闭0
并正常运行其他。我没有在recv()
.
如果我只是正常使用Ctrl+]
and关闭 telnet 会话(即断开客户端),我的程序可以正常工作close
,但是如果我使用强制终止客户端,kill <pid>
那么我的服务器将无法检测到连接丢失。
如何解决?
约束:我不想在客户端设置条件,我只想在服务器端解决这个问题。