Как изменить широковещательный порт UDP на сервере, если клиентский порт уже занят во время обнаружения сервера? - PullRequest
0 голосов
/ 03 апреля 2019

Я пытаюсь реализовать обнаружение сервера между ПК (сервером) и телефоном Android, передавая сообщение от сервера через общий порт (8888). Интересно, что мне делать, если порт уже занят в клиенте, как я могу изменить порт на обоих, чтобы клиент получил широковещательное сообщение? Должен ли я использовать какой-либо конкретный протокол обнаружения сети (UPnP или аналогичный)?

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

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

1 Ответ

0 голосов
/ 03 апреля 2019

В идеале, используйте существующий протокол обнаружения служб, такой как SSDP.Существует некоторая предварительная работа над этим для Android, которую вы можете построить из: https://github.com/resourcepool/ssdp-client

Причины использования SSDP:

  • Вы не столкнетесь с какой-либоконфликты, поскольку порты должным образом зарезервированы.
  • Используется многоадресная рассылка, а не широковещательная рассылка.Это может не иметь большого значения для вас в вашей сети, но IPv6 не поддерживает широковещательную передачу, поэтому он уже совместим.
  • Это стандартный протокол, поэтому сетевые администраторы знают, что это такое, и могут обрабатывать трафик.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...