两个进程通过套接字进行通信 - 进程 A 和进程 B。
进程 B 正在使用
select()
调用来检查套接字何时准备好 I/O.
进程A突然被杀死。 B侧插座会发生什么情况。 B端socket会自动检测到A的socket不再可用并且
select()
将返回-1和EABDF
。或者 select()
呼叫将永远保持阻塞状态。
选择将解锁,并且将返回错误案例或读取案例。
select()
返回并表示套接字可读。当你读取套接字时,你会得到-1(以及errno中相应的错误)或0(EOF)。
如果两端之间没有心跳,TCP套接字将保持半打开状态一段时间。 最后tcp连接会超时,取决于超时设置。 参考:http://en.wikipedia.org/wiki/Half-open_connection