boost async_read_some / async_receive ведет себя так, как будто MSG_PEEK всегда включен - PullRequest
2 голосов
/ 03 мая 2011

У меня следующая проблема.

Я запускаю async_receive на сокете tcp.
Обратный вызов вызывается с некоторыми данными
Я запускаю другой асинхронный прием на сокете.
Вызывается обратный вызов, но буфер также содержит данные предыдущего вызова. Ведет себя так, как будто я вызвал recv с флагом MSG_PEEK, хотя я этого не делал.

Я даже пытался вызвать версию с аргументами флагов = 0 и тем же эффектом.

Как я могу отключить это поведение? Я хотел бы, чтобы первый вызов получал данные из буферов ядра после каждого успешного вызова асинхронного обработчика.

Mihai

1 Ответ

1 голос
/ 04 мая 2011

я исправил проблему.Это была проблема отправки.Я повторно использовал вектор буферов, переданных async_write.

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