当前位置: 技术问答>linux和unix
TCP通信select 非常奇怪的问题
来源: 互联网 发布时间:2017-01-16
本文导语: 在LINUX下实现非阻塞的TCP通信, socket、connect、select都是非阻塞的时候,能够成功的完成TCP三次握手,进行通信。 但是 socket与connect是非阻塞,select是阻塞的时候,虽然能够完成握手,但是在...
在LINUX下实现非阻塞的TCP通信,
socket、connect、select都是非阻塞的时候,能够成功的完成TCP三次握手,进行通信。
但是 socket与connect是非阻塞,select是阻塞的时候,虽然能够完成握手,但是在握手成功后,大约20几毫秒之后,就会出现seever端主动关闭连接的请求(我实现的client端),然后TCP通信就变得不正常了。
有哪位大侠知道这是为什么啊?
socket、connect、select都是非阻塞的时候,能够成功的完成TCP三次握手,进行通信。
但是 socket与connect是非阻塞,select是阻塞的时候,虽然能够完成握手,但是在握手成功后,大约20几毫秒之后,就会出现seever端主动关闭连接的请求(我实现的client端),然后TCP通信就变得不正常了。
有哪位大侠知道这是为什么啊?
|
tcp会自动断开是正常的,因为考虑到连接可能断了,所以不可能一直连接着吧。
你可以在空闲时,随便发个数据包,这样就可以维持连接状态了。
你可以在空闲时,随便发个数据包,这样就可以维持连接状态了。