одновременный UDP-сервер, использующий вызов select () - PullRequest
0 голосов
/ 06 января 2012

Я следую этому примеру.Единственное изменение, которое я хочу сделать, это то, что вместо одновременного TCP-сервера я хочу, чтобы этот сервер был UDP-сервером.

Первоначально я получал сообщение об ошибке, что listen () не поддерживается, что имеет смысл.Нет смысла иметь listen () на сокете UDP.

Теперь я застрял в accept: Operation not supported сообщении об ошибке.Строка, которая вызывает ошибку - newfd = accept(listener,(struct sockaddr *)&remoteaddr,&addrlen);

Мой вопрос - как мне выполнить мультиплексирование ввода / вывода на UDP-сокетах?

Ответы [ 2 ]

4 голосов
/ 07 января 2012

Поскольку UDP НЕ ориентирован на соединение, вы не можете сделать согласие Вы должны прочитать из связанного сокета UDP, который дает вам пакет.

0 голосов
/ 06 января 2012

Вы можете использовать IP: порт входящих пакетов. Эта информация доступна как часть recvfrom ().

...