boost :: asio udp - Как получить много изменяемых буферов? - PullRequest
1 голос
/ 23 июля 2010

Я пытаюсь получить много сообщений udp от одного вызова async_receive.Мои сообщения ок.Длиной 60 байт.

Я даю async_receive вызову буферного массива, очень похожего на документацию надбавки, но, похоже, не удается заполнить все буферы.bytes_transferred равно одной длине сообщения (т.е. 60).

Есть какие-нибудь мысли о том, как я могу заполнить второй и третий буфер?Кроме того, как мне теперь, если второй и третий изменяемый буфер были заполнены?

1 Ответ

1 голос
/ 10 марта 2013

Если вы хотите получать несколько дейтаграмм за один вызов, вам обычно (независимо от ускорения) необходимо использовать recvmmsg .Из того, что я могу сказать, Boost не использует recvmmsg, поэтому вам придется использовать его самостоятельно с собственным сокетом, поддерживаемым Boost ASIO.Преимущество этого состоит в том, что вы можете уменьшить системные вызовы, когда доступно несколько дейтаграмм.

...