2013-04-01 1 views
2

Я пишу telnet-программу в java, используя классы сокетов и сокетов сервера. Это мой текущий код для клиентской программы. Пользователь вводит имя сервера и порт, к которому они хотели бы подключиться.Какое имя я использую для подключения к серверному сокету в 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 должен быть перенаправлен на ваш компьютер? Кроме того, проверьте условия контракта с вашим интернет-провайдером. – SJuan76

+0

, что может быть проблемой –

 Смежные вопросы

  • Нет связанных вопросов^_^