2013-10-10 166 views
0

我創建了一個普通的聊天程序,它只有一個服務器和一個客戶端類。我在我的末端運行服務器。聊天客戶端從不同的機器運行。在我的程序中,我已經指定了一個隨機端口號,所有客戶端都使用套接字連接來連接到運行在我的機器上的服務器。第一個問題是我必須禁用防火牆才能正常工作(可能是防火牆阻止了我提供的端口)。如何指定防火牆可以接受的端口號?我需要自己開一個端口嗎?其次,禁用防火牆後,一切正常,但突然間,連接丟失。沒有一個客戶可以發送消息。這可能是什麼原因?不確定是否由於我選擇的端口而引起。聊天服務器停止工作

回答

1

您需要使用this.socket.setSoTimeout(timeOut); 正確設置套接字連接超時,以防止超時,這必定會導致連接丟失。

爲了允許通過防火牆插座交際通過這個文件:http://windows.microsoft.com/en-US/windows7/Allow-a-program-to-communicate-through-Windows-Firewall

+0

防火牆一個工作!謝謝!我只需要分別添加該程序。關於超時,因爲我使用的是Swing框架,你能否建議一種方法來保持套接字連接直到框架窗口關閉? – Mercenary