我有以下代码:
客户端:
n=recv(sock,buf,1200,NULL);服务器端:
shutdown(sockk,SD_BOTH);问题是,客户端recv返回0,这意味着正常关机。我需要它返回-1 (我不能改变客户端,我需要使我的代码适应它)。
我该怎么做才能让它返回-1?
发布于 2009-11-09 13:54:51
我想通了。使用SO_LINGER设置套接字,从而导致异常关闭。现在它在shutdown()之后返回-1。
发布于 2009-11-08 20:14:14
不要从服务器调用shutdown()或close(),这样就可以向客户端进程发送一些信号。因此recv()调用将返回-1,并使用EINTR设置errno。希望这能有所帮助。
但我建议您不要采用这种编码实践。recv()可以返回0,+ve number和-1。处理所有这些情况是很好的。
https://stackoverflow.com/questions/1696186
复制相似问题