最近使用winSock做的一个网络项目中,使用TCP+Socket连接编写的一个多线程的网络程序,功能是客户端负责不断地向服务器端发送数据,服务端负责接收数据。客户端是一个DLL,服务端程序是一个随机启动的NT Service服务程序。
程序在夜间无人操作的运行过程中,客户端经常不定时地出现错误号为:10054的错误,而服务器端并没有相应的提示。运行环境是win2000+sp4,这个问题出现得比较莫名其妙。
查了MSDN上的10054错误号说明:WSAECONNRESET (10054)
Connection reset by peer.
A 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, or the remote host used a “hard close” (see setsockopt for more information on the SO_LINGER option on the remote socket.)
也就是说,一个连接被对方重设。一个建立的连接被远程主机强行关闭,若远程主机上的进程异常终止运行(由于内存冲突或硬件故障),或者针对套接字执行了一次强行关闭,便会产生10054错误。针对强行关闭的情况,可用SO_LINGER套接字选项和setsockopt来配置一个套接字。
今天的文章Socket程序中的Error#10054错误分享到此就结束了,感谢您的阅读。
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/12930.html