2014-01-22 130 views
3

我有一個運行在託管的Windows 2008服務器上的java 1.6「client」。當「客戶端」啓動時,它連接到使用外部機:病毒掃描能否關閉java TCP套接字連接?

socket = new Socket(host, port); 

此套接字連接已關閉的「服務器」的附加問題每週未識別出閉合插座。所以當「客戶端」試圖立即重新連接時,「服務器」認爲它已經連接並且不允許另一個連接。

我們只是現在才意識到,這與計算機病毒掃描程序完全吻合。

這些症狀是否可以由病毒掃描程序引起?病毒軟件來自賽門鐵克,但我不知道更多。如果您認爲它有幫助,我可以得到這些細節。

+1

我見過Symantec和McAfee等病毒掃描程序和安全軟件包的情況變得更糟。 :)在任何情況下,由於各種原因,TCP/IP連接可能會關閉。有沒有什麼辦法可以讓你的服務器代碼能夠接受來自客戶端的重新連接?這是更合適的修復方法。 – selbie

+0

此外,您可以檢查Windows事件日誌(控制面板 - >管理員工具 - >事件查看器),以查看在斷開連接時是否發生任何奇怪的網絡連接更改。 – selbie

+0

@selbie這是最煩人的部分。服務器端繼續認爲連接已經打開了一段時間。事件查看器是我們注意到賽門鐵克運行的方式。 – gjrwebber

回答

0

我認爲它更有可能是中間的東西認爲套接字已經超時後打開了很長時間,並關閉它。

Java-Sockets在將某些內容發送到封閉流之前不會識別封閉流,因此您的問題可能是由此引起的。