2009-05-05 61 views
0

我有一個客戶端連接的TCP偵聽器服務。最近我開始收到與斷開連接有關的錯誤。我連接了大約20個客戶端,連接工作正常。但是,當我將另外10個客戶端連接到該服務時,以前的連接會因10053或10054錯誤而中斷。新建TCP連接時關閉現有連接

此前它曾經與100個客戶端運行,但我不知道可能是什麼問題。該服務和客戶端都在Windows Server 2003上運行,因爲我發現Windows XP有多個TCP連接的已知問題(與10053相關)。

回答

0

那麼,你收到的錯誤是非常不同的。

10053是WSAECONNABORTED - 連接被中止。這通常是由於應用程序堆棧中存在問題(儘管它有時會發生)。

10054是WSAECONNRESET - 連接被同級重置。這通常是連接另一端的問題。

你是如何測試的?連接到這個服務的「客戶」是你寫的嗎?如果是這樣,當你得到一個10054時,你應該跟蹤客戶端發生了什麼。

此外,這可能是由於網絡問題,與您的軟件無關(直接)。您正在運行的網絡基礎架構是否發生了變化?

+0

我正在使用自定義客戶端進行測試,該自定義客戶端爲該服務創建了大量連接(線程),並且還通過GNSS Surfer(即NTRIP客戶端)測試了NTRIP服務器。 10054似乎是合理的,因爲它可能會在客戶端斷開連接時出現,但真正的問題是10053.以前我發現10053與Windows XP有關,但現在在Windows Server 2003中也可以看到該問題。 – A9S6 2009-05-05 15:43:55

0

我懷疑這是網絡問題,或者您可能會在前20個客戶端連接時看到它發生。只是在黑暗中拍攝,但你怎麼處理這些連接?你正在使用某種數組或集合?您是否可能無意中將現有連接設置爲新連接,導致系統出現異常?