如果客户端正在等待recv()并且连接因keepalive超时而超时,那么recv()的返回值是什么?是否因为keepalive超时而设置了连接终止的特定错误代码?
我可以看到我们在windows上有keepalive的特定错误代码。 WSAENETRESET对于面向连接的套接字,此错误表示由于在操作正在进行时检测到故障的保持活动,连接已断开。对于数据报套接字,此错误表示生存时间已过期。
http://msdn.microsoft.com/en-us/library/windows/desktop/ms740121(v=vs.85).aspx
请告诉我。
答案 0 :(得分:0)
如果发生保持活动超时,如果您尝试在套接字上SIGPIPE
或read()
,则会收到write()
。
另见: How to use SO_KEEPALIVE option properly to detect that the client at the other end is down?