Как сделать мультиклиентный UDP-сервер - PullRequest
0 голосов
/ 14 марта 2011

Я хочу реализовать сервер UDP, который использует только один порт (порт: 6516), но может обрабатывать несколько пакетов от нескольких клиентов. Мне сказали создать сокет для прослушивания, но я не смог понять идею. Как я знаю, только TCP может выполнять прослушивание событий.

Может ли кто-нибудь сказать мне правильный и эффективный метод для такого рода целей? Я искал по всему интернету, но в конце концов я все еще не прояснил свой разум. Рабочие шаги очень ценятся (как для сервера, так и для клиента).

Спасибо.

1 Ответ

5 голосов
/ 14 марта 2011

Создайте сокет (socket(AF_INET, SOCK_DGRAM, 0)), bind() его к порту, начните звонить recvfrom(), который сообщает вам, кто отправил пакет, и sendto(), который отправляет пакет на определенный целевой IP / порт. Вынеобходимо самостоятельно управлять списком клиентов, поскольку UDP-сокет обычно не связан с конкретным удаленным IP-портом / портом, но будет принимать данные и отправлять данные на все, что вы указали в упомянутых вызовах.

...