2013-04-01 39 views
2

我正在使用服務器套接字和套接字類在java中編寫類似於程序的telnet。這是我當前的客戶端程序代碼。用戶輸入他們想要連接的服務器名稱和端口。我使用什麼名稱連接到java服務器套接字

static Socket getSocket() 
{ 
    while(true) 
    { 
     System.out.println("What server do you want to connect to on which port?"); 
     String info = sc.nextLine(); 
     String host = info.split(" ")[0]; 
     int port = Integer.parseInt(info.split(" ")[1]); 

     try 
     { 
      InetAddress ip = InetAddress.getByName(host); 
      return new Socket(ip, port); 
     } 
     catch (UnknownHostException e) 
     { 
      System.err.println("The host is unknown."); 
     } 
     catch (IOException e) 
     { 
      System.err.println("Network error."); 
     } 
    } 
} 

我試着在本地主機上連接,它工作。然後我嘗試使用ip地址作爲網絡名稱,在遠程計算機上與我的朋友連接,並且它無法發出異常。我用什麼名字連接到遠程服務器。

+0

你會得到什麼例外? – PeterMmm

+0

我沒有例外,它在他的遠程計算機上,我在我的計算機上運行服務器,現在我不能聯繫他 –

+0

也許您必須在WAN路由器中定義前向規則。 – PeterMmm

回答

1

你需要給你的朋友your remote IP address

+2

您是否在家庭路由器中配置了NAT?告訴它端口X的請求必須重定向到您的PC?另外,請檢查與您的ISP的合同條款。 – SJuan76

+0

這可能是問題所在 –

相關問題