2013-04-01 37 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

这可能是问题所在 –

相关问题