2017-02-22 72 views
0

Im в процессе создания двух приложений, которые будут связываться через UDP. Оба приложения должны будут отправлять и извлекать данные асинхронно.UDP: использование одного и того же номера порта с обеих сторон сети для отправки и получения асинхронно

Мой вопрос: Должен ли я определять отдельные порты для прослушивания и отправки или могут ли оба приложения отправлять и получать на одном и том же порту?

Пример:
App1 отправить на порт 6060 < -----------> Приложение 2 прослушивает 6060
App1 прослушивает порт 6060 < ---------> App2 посылает на 6060

или

App1 отправить на порт 6060 < ------------> приложение 2 прослушивает 6060
App1 прослушивает порт 7070 < ------ ----> App2 отправляет по 7070

Спасибо

+1

Просто отметьте. Для этой схемы (одноранговое соединение) вам либо нужен хотя бы один общедоступный IP-адрес (на app1 или app2), либо вам нужен механизм обхода NAT. –

ответ

1

Нет никакой веской причины тратить порт таким образом. UDP является полнодуплексным; сокеты имеют полный дуплекс; и отправка обратно в порт происхождения намного проще, чем отправка на другой порт, который должен быть настроен с обоих концов.

+0

также, имея тот же порт, помогает, если между брандмауэром существует – Alnitak