Socket程序中的Error#10054错误
近期使用winSock做的一個網絡項目中,使用TCP+Socket連接編寫的一個多線程的網絡程序,功能是client負責不斷地向server端發送數據,服務端負責接收數據。client是一個DLL,服務端程序是一個隨機啟動的NT Service服務程序。
程序在夜間無人操作的執行過程中,client常常不定時地出現錯誤號為:10054的錯誤,而server端并沒有對應的提示。執行環境是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來配置一個套接字。
轉載于:https://www.cnblogs.com/mengfanrong/p/3752556.html
總結
以上是生活随笔為你收集整理的Socket程序中的Error#10054错误的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 51. 顺时针打印矩阵[print ma
- 下一篇: 图文详解远程部署ASP.NET MVC