Повысьте ASIO TCP: вернитесь к буферу сокетов
У меня есть приложение, которое читает из сокетов TCP, используя методы асинхронного TCP Boost ASIO. Потоки имеют конечные маркеры, и для моей цели более эффективно читать фрагменты данных (вместо read_until), потому что почти всегда я не пересекаю конечный маркер.
Просто чтобы справиться с редким случаем чтения за пределами конечного маркера, есть ли способ, которым я могу вставить дополнительные байты обратно в буфер сокетов? чтобы другой асинхронный обработчик мог видеть полный комплект? Или есть ли способ, которым я могу эмулировать istream::seekg в потоке сокета? Я искал ТАК и сеть, но не мог найти никакой подсказки.
Спасибо!
1 ответ
Я понял, что функции, о которой я спрашивал, нет (нет способа asio, чтобы отодвинуть прочитанные байты). Что-то, что подходит к тому, что я хотел, это заглянуть в буфер сокетов. Тем не менее, этот вопрос SO и ответ Сэма Миллера на этот вопрос SO заставили меня отказаться от своих желаний и изменить дизайн моего приложения, когда мне не нужно ни заглядывать, ни откладывать.