2013-11-20 4 views
0

У меня есть вопрос, где 2 или более клиентов на хосте. Попробуйте получить от хоста B точно такой же адрес и номер порта.Получение нескольких клиентов UDP из одного и того же источника

Предположим, у нас есть хост A, и на нем есть 2 потока. A.thread_a отправляет пакет в порт B xxxx. Затем он возвращает (B, xxxx). В то же время, A.thread_b выполняет тот же вызов recvfrom() с тем же номером IP и порта. B, после получения запроса от A.thread_a, отправляет данные sendto (A, yyyy). Кто получит ответ, A.thread_a или A.thread_b?

+0

Сетевая версия неопределенного поведения :( –

+0

@MartinJames как в одном не должны делать это в первую очередь? – lang2

+0

Действительно. Если вы хотите мультиплексировать потоки сообщений из нескольких потоков, Идентификатор инициатора в сообщении и попросите его ответ в ответ. –

ответ

0

Если вы хотите мультиплексировать потоки сообщений из нескольких потоков, вы должны поместить в сообщение какой-то идентификатор оригинатора, а сверстник вернет его в ответ. - Мартин Джеймс

Смежные вопросы