2

两个进程通过套接字进行通信 - 进程 A 和进程 B。

进程 B 正在使用select()调用来检查套接字何时准备就绪I/O.

进程 A 突然被杀死。B侧插座会发生什么。B 侧套接字会自动检测到 A 的套接字不再可用,select()并将返回 -1 和EABDF. ORselect()通话将永远被阻止。

4

3 回答 3

2

select()返回并说套接字是可读的。当您读取套接字时,您将得到 -1(以及 errno 中的相应错误)或 0(EOF)。

于 2013-08-01T10:05:46.733 回答
2

Select 将解锁并且将返回错误情况或读取情况。

于 2013-08-01T09:57:10.590 回答
-1

如果两侧之间没有心跳,则 tcp 套接字将保持半打开状态一段时间。最后 tcp 连接会超时,取决于超时设置。参考:http ://en.wikipedia.org/wiki/Half-open_connection

于 2013-08-01T10:03:56.977 回答