Re[2]: Два двунаправленных сокета на одном порту на одной ма
От: Lexey Россия  
Дата: 17.12.02 13:45
Оценка:
Здравствуйте, SCS, Вы писали:

S>>Как организовать двунаправленную передачу данных по UDP на одной машине, на одном порту? То есть два приложения биндят сокеты на один и тот же порт, оба шлют данные, оба принимают....У меня получается что, кто-то один читает все — и свои данные и те которые отпраляет второе приложение... Пробовал и отсылать пакет обратно, и recv(..MSG_PEEK..) все равно... Может кто-нить помочь?


SCS>изначально ip-адрес:порт однозначно определяют приложение (см.например RFC1700 здесь). ты же пытаешься на эту одназначность повесить два сокета для приема дайтаграмм (практически это два сервера обработки). вот и ответь на вопрос — а по какому признаку


ИМХО, ты не прав. Зачем тогда по твоему придумана опция SO_REUSEADDR?

>winsock должен разруливать пакеты между ними (а если их будет очень много ) поэтому имеешь то, что имеешь — дайтаграммы отдаются только в один из них.


Винсоку и незачем ничего разруливать. Ему достаточно кидать приходящие дэйтаграммы в несколько буферов (по числу слушающих приложений). Ничего сложного я тут не вижу.

SCS>подбирай другое решение
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.