连接正确建立,一段时间后出现。 有谁知道为什么?
recv(3( 的手册页指出了错误ETIMEDOUT
:
在建立连接期间超时,或者由于活动连接上的传输超时。
此错误的原因可能成倍,具体取决于您使用的套接字类型。
如果我们假设您使用的是 TCP 套接字:
int tcp_socket = socket(AF_INET, SOCK_STREAM, 0);
这可能意味着您的通信合作伙伴没有及时发送确认。
如果您在connect()
上得到此消息,则表示远程主机没有响应连接请求,可能是由于防火墙或网络连接问题(例如拉电缆(。
如果您在已建立的 TCP 连接上获得此消息,则意味着远程主机未在主机的超时期限内确认从主机发送的 TCP 段,这表示主机已失效、连接失效或电缆拉动。