2012-03-04 494 views
0

Possible Duplicate:
Java sockets - java.net.ConnectException: Connection refused: connect的Java套接字錯誤:java.net.ConnectException:連接被拒絕:連接

我已經創建了通信用插座一個簡單的聊天程序。當我在本地主機上運行它時,一切正常。但是,當我嘗試使用我的IP鏈接客戶端和服務器程序時會出現問題。

http://www.canyouseeme.org/可以連接到我的服務器的端口9999所以我知道服務器很好,端口是開放的。但是,我的客戶端無法連接。

錯誤日誌...

java.net.ConnectException: Connection refused: connect 
at java.net.PlainSocketImpl.socketConnect(Native Method) 
at java.net.PlainSocketImpl.doConnect(Unknown Source) 
at java.net.PlainSocketImpl.connectToAddress(Unknown Source) 
at java.net.PlainSocketImpl.connect(Unknown Source) 
at java.net.SocksSocketImpl.connect(Unknown Source) 
at java.net.Socket.connect(Unknown Source) 
at java.net.Socket.connect(Unknown Source) 
at java.net.Socket.<init>(Unknown Source) 
at java.net.Socket.<init>(Unknown Source) 
at Client.connect(Client.java:129) 
at Client.main(Client.java:47) 

沒有任何人有任何想法可能是造成這個?提前致謝。

鏈接到完整的源代碼:

http://pastebin.com/2XftHtn9

+0

它們在同一個子網上嗎?是否有任何網絡設備可能會阻止該端口?如何在服務器上的本地防火牆?或TCP包裝?你可以telnet到本地主機的端口,還是隻是應用程序? – nsfyn55 2012-03-04 17:52:01

+0

請不要轉發問題。 – 2012-03-04 17:58:04

回答

2

你想從你的局域網內連接到使用公共IP地址你自己的服務器?對於大多數SoHo路由器,端口轉發僅適用於廣域網到局域網,而不是局域網到局域網。你在找什麼叫做「髮夾式NAT」,許多SoHo路由器都不這樣做。要從您的LAN內部訪問您的服務器,請使用其內部IP地址,而不是其公共IP地址。

+0

謝謝,我會把客戶端發給朋友,看他們是否可以連接。 – user1248420 2012-03-04 17:55:38

+0

你說得對!非常感謝:D – user1248420 2012-03-04 18:01:01

+0

這是問題所在。由於服務器綁定到'0.0.0.0'(因爲在服務器代碼中沒有指定IP地址),只需要連接到'localhost'(或本地專用網絡上的機器IP地址)客戶端在本地機器上。 – 2012-03-04 18:01:18

相關問題