C++ Linux套接字recv返回-1,错误110连接超时
连接正确建立,在一段时间后出现。 有人知道为什么吗 错误的状态C++ Linux套接字recv返回-1,错误110连接超时,c++,c,C++,C,连接正确建立,在一段时间后出现。 有人知道为什么吗 错误的状态ETIMEDOUT: 连接在建立连接期间超时,或由于活动连接上的传输超时 此错误的原因可能有很多倍,具体取决于您使用的套接字类型 如果我们假设您正在使用TCP套接字: int tcp_socket = socket(AF_INET, SOCK_STREAM, 0); 这可能意味着您的通信伙伴没有及时发送确认。如果您在connect()上收到此消息,则意味着远程主机没有响应连接请求,原因可能是防火墙或网络连接问题,如电缆拉断 如果您在
ETIMEDOUT
:
连接在建立连接期间超时,或由于活动连接上的传输超时
此错误的原因可能有很多倍,具体取决于您使用的套接字类型
如果我们假设您正在使用TCP套接字:
int tcp_socket = socket(AF_INET, SOCK_STREAM, 0);
这可能意味着您的通信伙伴没有及时发送确认。如果您在
connect()
上收到此消息,则意味着远程主机没有响应连接请求,原因可能是防火墙或网络连接问题,如电缆拉断
如果您在已建立的TCP连接上收到此消息,则意味着远程主机没有在主机的超时时间内确认从您的主机发送的TCP段,这表示主机已断开、连接已断开或电缆拉入。显然来自
recv
,这就是为什么您应该请求;)问题名称如何?@AnttiHaapala如果你需要更多细节,请随意询问,但不要告诉我。我不需要它。谢谢你的回复。当服务器调用关闭(sock),客户端调用recv()但recv nothing时,我很困惑。在正常情况下,recv必须返回零,这意味着服务器关闭此连接,但客户端recv就像死了一样。这意味着在非常糟糕的网络环境中,主机可能会丢失(fin+ack)包?您能提供一个吗?!(好吧,它不需要我们验证,但需要最少的代码,你可以复制它)这是一个MCVE不会有帮助的时候。这是一个网络问题,OP的网络不能发布在SO问题中:)我投票将这个问题作为离题题来结束,因为这是一个网络上的网络系统问题,不包括在问题中:)@MartinJames它可以,因为recv可能因各种原因超时。。。现在我们甚至不知道OP是使用IPX还是Unix套接字…对于Linux,最好使用这里的参考页:或者这里谢谢您的回复。