远程套接字上select()的行为关闭(通过查杀过程)

时间:2013-08-01 09:51:17

标签: c linux sockets select

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

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

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

3 个答案:

答案 0 :(得分:2)

选择将解锁,将返回错误案例或阅读案例。

答案 1 :(得分:2)

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

答案 2 :(得分:-1)

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