+ -
当前位置:首页 → 问答吧 → TCP连接建立,客户端拔掉网线,掉电会怎样

TCP连接建立,客户端拔掉网线,掉电会怎样

时间:2010-08-18

来源:互联网

linux下网络编程,如果TCP连接建立后,服务器端阻塞接收消息,此时客户端拔网线,或者掉电,服务器会一直阻塞么?

作者: north423   发布时间: 2010-08-18

回复 north423


    tcp有超时机制,不会傻等的,时间一到无回应就关闭

作者: chong232   发布时间: 2010-08-18

什么回应?tcp自己会每过段时间发分包么?我不设置keepalive选项。

阻塞在read

作者: north423   发布时间: 2010-08-18

如果设置了keep alive,那么协议栈会产生一个RST数据报。read会返回-1。否则就一直阻塞了

作者: marxn   发布时间: 2010-08-18

没有keepalive选项,服务端是无法得知的。
所以 在应用层做心跳。

作者: okocha-jay   发布时间: 2010-08-18

回复 okocha-jay
如何做应用层的心跳呢,我的程序是开一个线程和对端发keepalive包,如果超时,我怎么通知主线程?我做的keep线程只能close(fd)后,退出发送keep线程,主线程并不知道连接断了,还是阻塞在read。。

作者: north423   发布时间: 2010-08-18

作者: chong232   发布时间: 2010-08-18