Здравствуйте, ahaos, Вы писали:
A>Моя программа рассылает по сети сообщения. Удаленные компьютеры что-то делают и присылают результаты. A>Нужно эти результаты принять.
A>На данный момент я хотел бы для каждого удаленного компьютера на принимающем хосте создать свой поток ожидания с функцией accept. Так и делаю.
Эээ кто на ком стоял, простите? О каком сетевом API речь?
В BSD sockets (которое скопировано в основах в винде) если UDP, там нет accept(), а если TCP или SCTP, то там... ну, конечно, можно сделать для каждого ремота свой слушающий порт, но зачем?
A>Но функция accept срабатывает на все подряд и потокам нужно как-то отфильтровать под себя поступающие пакеты данных, т.е. конкретный поток ожидания должен принять данные только от конкретного удаленного компьютера.
"Пакеты"? То есть UDP?
(вообще-то датаграммы, но "пакеты" тоже понятно)
Тогда где accept()? Или речь просто про recv()?
A>Как это лучше организовать? Или вообще лучше сменить схемы ожидания и приема данных?
Для начала в них разобраться, а то рассказ на уровне "нажимаю клаксон и машина съезжает на второстепенную".