Как я могу отправлять сообщения UDP клиенту, находящемуся за локальной сетью?

Я создаю сервер, который использует протокол UDP для отправки и получения сообщений UDP клиентам и от них. Клиенты постоянно «выбрасывают» UDP-сообщения на сервер без ответа сервера. Когда сервер «думает», что он получил достаточно UDP-сообщений от определенного клиента, он отправляет сигнальное сообщение (UDP-сообщение) обратно клиенту действует как сервер), чтобы предотвратить дальнейшую отправку сообщений. Проблема здесь в том, что: Сервер может получать UDP-сообщения от клиентов. Но клиенты (находящиеся за локальной сетью) не могут получать UDP-сообщения с сервера. Как я могу отправлять сообщения UDP клиенту, находящемуся за локальной сетью?


person Susuri Yuyuki    schedule 04.05.2015    source источник
comment
Сколько времени требуется серверу для отправки дейтаграммы UDP клиенту. Сразу после получения последнего сообщения UDP? (тот, который превышает лимит)   -  person rodolk    schedule 05.05.2015


Ответы (1)


Это зависит от маршрутизатора. Некоторые устанавливают маршрут на некоторое время, когда дейтаграмма впервые отправляется членом локальной сети на сервер, маршрутизатор может принять к сведению, поскольку пакет udp является частью «сеанса UDP», и направить его соответствующим образом. Другой способ, который я бы попробовал, — использовать UPnP для переадресации правильного порта (то есть порта, который использует клиентский компьютер) члену локальной сети.

person HLL    schedule 04.05.2015