Демультиплексирование потоков udp из разных источников - PullRequest
0 голосов
/ 25 ноября 2018

Мой сервер использует один сокет udp для получения потоков udp с разных IP-адресов.(Все отправители отправляют на один и тот же порт).Когда recv возвращается на сервер с блоком данных, может ли этот блок содержать байты из разных источников?Если нет, есть ли надежный способ определить, какой отправитель отправил весь этот кусок?

1 Ответ

0 голосов
/ 25 ноября 2018

В UDP каждый полученный чанк будет точно тем, что отправитель ранее передал в 'send ()' или 'sendto ()' - в отличие от TCP, UDP поддерживает границы сообщений.

Вы можете узнать IPадрес и порт, с которого был получен полученный пакет, вызвав recvfrom () вместо recv ().Эти значения будут записаны в «struct inaddr_in», на которую вы указываете указатель.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...