如何修复WSAECONNABORTED错误?

时间:2012-11-07 14:29:26

标签: networking tcp

我有一个C / S应用程序。客户端通常使用TCP协议向服务器发送大量数据。它在LAN环境(10MB / s)中运行良好,但在将其迁移到WAN环境(200KB / s)时会发生网络错误。

当我跟踪错误时,我发现客户端中的send()返回-1,而WSAGetLastError()首先返回WSAECONNABORTED;几秒钟后,服务器中的recv()也返回-1,errnoECONNRESET

在咨询文档后,我对WSAECONNABORTEDECONNRESET有了基本的了解。 我认为前者是由糟糕的网络造成的:TCP在几次重传失败后关闭套接字。后者是客户意外关闭的结果。

我想知道如何处理这种错误。立即重新连接?或者任何套接字选项可以帮助吗?

1 个答案:

答案 0 :(得分:1)

你是对的。

前者是网络问题造成的。您所能做的就是使用新的插座重试。

后者是应用程序协议错误。您在对等方已关闭时发送。这是一个应用程序错误。治愈就是修复这个错误。