Можно ли многоадресно передавать данные из разных процессов на один и тот же хост и порт? - PullRequest
0 голосов
/ 24 июня 2011

У меня есть несколько процессов, отправляющих разные типы сообщений на один и тот же ip и порт, поэтому, когда я пишу клиент, мне понадобится только один поток чтения, а не несколько потоков чтения.Я приступил к разработке шаблона или моя стратегия не рекомендуется?Очевидно, что я мог бы отправлять на другой порт ip: но это означало бы, что на моем клиенте было несколько потоков.Есть мысли?

1 Ответ

2 голосов
/ 24 июня 2011

Вы отправляете многоадресные данные в группу и порт, а не в «хост».Прослушивающие процессы должны будут присоединиться к этой группе, а отправляющий процесс должен будет включить опцию сокета IP_MULTICAST_LOOP.Взгляните на этот Multicast over TCP / IP HOWTO .

Отказ от ответственности: я не знаю точно, но я считаю, что значение этого параметра сокета в Windows перевернуто, поэтомуесли вам не повезло - проверьте MSDN или что-то в этом роде.

Edit 0:

Совершенно нормально, что несколько процессов могут отправлять данные на один и тот же порт UDP, поскольку степень детализации на стороне получателя равна одна датаграмма на чтение , и вы знаете, откуда была отправлена ​​каждая датаграмма (см. recvfrom(2)).

...