Windows应用程序上的不规则套接字错误(10054)
我正在使用一个使用多个进程的
Windows(Microsoft Visual C 2005)应用程序
在Intranet中的不同主机上运行. 进程使用TCP / IP相互通信.不同的流程可以在 我们目前有一个不规则的错误.沟通似乎有效 当通信不起作用时,我们会收到错误(显然是在进程中) send(socket,(char *) data,(int) data_size,0); 通过检查我们得到的错误代码 WSAGetLastError() 我们看到这是一个错误10054.这是我在Microsoft文档中找到的 WSAECONNRESET 10054 Connection reset by peer. An existing connection was forcibly closed by the remote host. This normally results if the peer application on the remote host is suddenly stopped,the host is rebooted,the host or remote network interface is disabled,or the remote host uses a hard close (see setsockopt for more information on the SO_LINGER option on the remote socket). This error may also result if a connection was broken due to keep-alive activity detecting a failure while one or more operations are in progress. Operations that were in progress fail with WSAENETRESET. Subsequent operations fail with WSAECONNRESET. 所以,据我所知,连接被接收过程中断了. 我的问题. > SO_LINGER选项意味着什么? 关于最后一个问题.我们尝试的第一个解决方案(实际上,它是一个 目前我们不了解我们是否有软件问题或配置 一个假设是操作系统耗尽短暂的端口(如果连接是 另一个可能有用的细节是每个进程都会发送和接收 同样非常奇怪的是问题不规律地发生:沟通有效 感谢您提出任何意见和建议. 编辑 感谢提示确认唯一可能的解释是连接关闭错误.通过对问题的进一步分析,我们发现连接的服务器端进程已经崩溃/已经终止并且已经重新启动.因此,有一个新的服务器进程正在运行并正在侦听正确的端口,但是客户端没有检测到这一点,并且仍在尝试使用旧连接.我们现在有一种机制来检测这种情况并重置客户端的连接. 解决方法
该错误意味着连接已被关闭 远程站点.所以除了接受连接断开之外,你不能在你的程序上做任何事情.
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |