Ubuntu — исключение UnknownHostException при подключении к ПК, используя сокет в одноранговой сети

#java #sockets #networking #ubuntu #adhoc

#java #сокеты #сеть #ubuntu #adhoc

Вопрос:

Я создал FileSystemListener , который прослушивает файлы в папке и отправляет их на указанный IP-адрес. Все это было протестировано в стандартной беспроводной сети, но я получаю исключение unkownhostexception при запуске в одноранговой сети.

Я не был уверен, следует ли мне спрашивать об этом у суперпользователя или здесь, поскольку я не уверен, связано ли это с моим кодом или Ubuntu.

Я могу пинговать другой компьютер в беспроводной сети, но я продолжаю получать вышеупомянутое исключение при подключении через java.

Не уверен, помогает ли это, но вот самый простой SSCE, о котором я могу думать:

 import java.net.Socket;

public class ClientTester {

  public static void main(String[] args) {
        Socket s  = new Socket("192.168.0.1", 4440);
   }
}
  

Кто-нибудь сталкивался с этим раньше, хотел посмотреть, была ли это проблема Java, прежде чем я перейду к публикации в Superuser.

Спасибо!

Комментарии:

1. Можете ли вы опубликовать исключение? Также ваш отчет о том, в чем проблема, и симптом немного не соответствуют действительности. Исключение UnknownHostException является прямым результатом попытки JDK разрешить имя. В вашем примере указан только адрес, который не пытается выполнить поиск по имени.

Ответ №1:

Для корректной компиляции UnknownHostException «должно быть перехвачено или объявлено выброшенным».

Например:

 import java.io.IOException;
import java.net.Socket;
import java.net.UnknownHostException;

public class ClientTester {

    public static void main(String[] args)
        throws UnknownHostException, IOException {
        Socket s  = new Socket("192.168.0.1", 4440);
   }
  

}

Ответ №2:

Если это работает в обычном режиме инфраструктуры, но не в режиме ad-hoc, вы, вероятно, неправильно настроили специальный режим. Не могли бы вы показать нам свою конфигурацию /etc/network/interfaces?