我有一个 C/S 应用程序。客户端通常使用 TCP 协议向服务器发送大量数据。它在 LAN 环境(10MB/s)中运行良好,但是当我将它迁移到 WAN 环境(200KB/s)时会发生网络错误。
当我跟踪错误时,我发现send()
在客户端返回 -1 并首先WSAGetLastError()
返回WSAECONNABORTED
;几秒钟后,recv()
in server 也返回 -1 和errno
is ECONNRESET
。
WSAECONNABORTED
查阅文档后,对和有了基本的了解ECONNRESET
。我认为前者是由于网络不好造成的:TCP在几次重传失败后关闭了套接字。后者是由于客户端意外关闭操作造成的。
我想知道如何处理这种错误。立即重新连接?或者任何套接字选项可以提供帮助?