Производительность передачи UDP - PullRequest
0 голосов
/ 04 апреля 2011

У меня есть приложение, которое передает некоторые данные в цикле. Базовым протоколом является UDP на WinSock. Если я не добавляю sleep (1 мс) после каждой операции передачи, большая часть данных не отправляется (или wireshark не может перехватить ее). Было ли у вас такое поведение, что UDP не обрабатывает повторную отправку в цикле?

Привет

Tugrul

1 Ответ

1 голос
/ 08 апреля 2011

Прежде всего вы должны проверить возвращаемые значения при отправке данных, чтобы проверить, были ли данные успешно отправлены или нет. Во-вторых, это может произойти, внутренний буфер UDP не может вместить больше данных, потому что предыдущие данные еще не переданы. Таким образом, самое простое решение состоит в том, что каждый раз перед отправкой данных вы должны проверять, доступен ли для записи сокет UDP или нет. Вы можете сделать это, вызвав «select» или «poll» на этом UDP-сокете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...