Как получить адрес для привязки в Java через dnsmasq? - PullRequest
0 голосов
/ 18 октября 2019

Моя программа предназначена как для отправки команд на датчик через TCP, так и для получения данных от датчика через отдельный порт и протокол, а именно UDP. Часть TCP работает нормально, и я могу отправлять и получать данные через нее, однако, как только программа инициализирует часть UDP, я получаю следующие ошибки:

java.net.BindException: Cannot assign requested address (Bind failed)
   at java.base/java.net.PlainDatagramSocketImpl.bind0(Native Method)
   at java.base/java.net.AbstractPlainDatagramSocketImpl.bind(AbstractPlainDatagramSocketImpl.java:131)
   at java.base/java.net.DatagramSocket.bind(DatagramSocket.java:394)
   at java.base/java.net.DatagramSocket.<init>(DatagramSocket.java:244)
   at java.base/java.net.DatagramSocket.<init>(DatagramSocket.java:301)

Это на машине Linux, и поскольку датчик нев настоящее время подключен ко всему, что даст ему аренду DHCP Я использую dnsmasq, где я считаю, что проблема заключается. Я попытался изменить мой файл hosts, так как думал, что dnsmasq, возможно, изменил настройки там, но не играли в кости. Я проверил, что мой петлевой интерфейс работает и работает. Я могу проверить связь с датчиком в терминале и получить ответ обратно, и, как я уже говорил ранее, TCP-часть работает безупречно.

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

...