Я получаю исключение SocketException при попытке вызвать joinGroup (addr) для MulticastSocket. Это происходит только на компьютере с Windows, который мы настроили для автоматического запуска нашего приложения при загрузке компьютера.
Похоже, исключение выдается, потому что Windows еще не полностью завершила процесс запуска, и вот исключение.
java.net.SocketException: error setting options
at java.net.PlainDatagramSocketImpl.join(Native Method)
at java.net.PlainDatagramSocketImpl.join(Unknown Source)
at java.net.MulticastSocket.joinGroup(Unknown Source)
При запуске нашего приложения, если мы подождем минуту, прежде чем пытаться присоединиться к группе, все будет нормально.
Поэтому мы решили включить цикл повторных попыток, чтобы он подключился, как только сеть станет доступной, что, похоже, работает. После двух неудач сработает третья попытка присоединиться к группе.
Проблема в том, что теперь MulticastSocket не получает никаких сообщений от группы, даже если она отлично соединяется.
Я создаю новый MulticastSocket после каждого сбоя и удаляю старый.
Почему отказ присоединиться к группе на одном MulticastSocket повлияет на тот, который присоединился без каких-либо ошибок, и как я мог бы обойти это?