0

我有一個非常簡單的客戶端服務器代碼編寫的Java(服務器偵聽某些端口和客戶端連接到服務器端口,並建立連接後,客戶端IP顯示在服務器控制檯上)。這個程序在Intranet上工作得很好,但是如果客戶端和服務器在互聯網上,我的服務器無法檢測到它。我的客戶端和服務器上沒有安裝防火牆,端口轉發在服務器上完成(我可以從canyouseeme.org )。無法連接到互聯網上的服務器

服務器直接連接與其他三臺電腦調制解調器沿(它們也直接連接到調制解調器)

請幫我弄清楚,爲什麼我不能夠提前檢測到的internet.Thanks客戶端。

Client code: 
------------ 

String remoteIP = //remote ip 
int port =1888; 

try{ 
new Socket(remoteIp,port); 
}catch(Exception e){ 
System.out.println(e.message()); 
} 

Server code 
----------- 
ServerSocket serversocket = new ServerSocket(port); 
Socket socket = serverSocket.accept(); 
displayIp(socket); 
+2

請發佈這個'非常簡單的客戶端服務器代碼'的代碼。 – 2011-03-31 18:09:28

+0

添加了代碼。 – hnm 2011-03-31 18:30:12

+0

你的意思是'如果客戶端和服務器在互聯網上,我的服務器無法檢測到'?客戶端能夠首先連接到服務器嗎? – 2011-03-31 18:43:00

回答

0

檢查客戶端上的代理配置,請參閱http://download.oracle.com/javase/6/docs/technotes/guides/net/proxies.html

你使用哪種協議?

+0

我使用TCP協議(使用java套接字)。但事情是我的系統上只有服務器沒有檢測到客戶端。如果我在我的辦公系統(它直接連接到調制解調器,它能夠檢測客戶端)上運行服務器,所以它在我的服務器上肯定有問題。但是我可以在canyouseeme.org上看到我的服務器 – hnm 2011-03-31 18:33:26

+0

嘗試將您的代碼更改爲端口80,同時在具有連接了服務器的NAT的WAN路由器上。在端口80上從canyouseeme.org再次檢查服務器。然後在客戶端打開瀏覽器並轉到例如http://www.google.com,然後轉到http:// 。這*必須*工作。 – PeterMmm 2011-03-31 20:08:32

相關問題