Здравствуйте, SCS, Вы писали:
S>>Как организовать двунаправленную передачу данных по UDP на одной машине, на одном порту? То есть два приложения биндят сокеты на один и тот же порт, оба шлют данные, оба принимают....У меня получается что, кто-то один читает все — и свои данные и те которые отпраляет второе приложение...
Пробовал и отсылать пакет обратно, и recv(..MSG_PEEK..) все равно... Может кто-нить помочь?
SCS>изначально ip-адрес:порт однозначно определяют приложение (см.например RFC1700 здесь). ты же пытаешься на эту одназначность повесить два сокета для приема дайтаграмм (практически это два сервера обработки). вот и ответь на вопрос — а по какому признаку
ИМХО, ты не прав. Зачем тогда по твоему придумана опция SO_REUSEADDR?
>winsock должен разруливать пакеты между ними (а если их будет очень много
) поэтому имеешь то, что имеешь — дайтаграммы отдаются только в один из них.
Винсоку и незачем ничего разруливать. Ему достаточно кидать приходящие дэйтаграммы в несколько буферов (по числу слушающих приложений). Ничего сложного я тут не вижу.
SCS>подбирай другое решение