2014-01-17 5 views
3

У меня есть слегка измененный код клиента, взятый из этого this example. Проблема, с которой я сейчас сталкиваюсь, заключается в том, что boost: asio: read call reads действительно медленный, где-то около 2 байт в секунду.C++, boost asio, slow read

while (boost::asio::read(socket, response, boost::asio::transfer_at_least(1), error));

или

boost::asio::read(socket, response, boost::asio::transfer_all(), error);

Entire code here

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

Любая помощь будет принята с благодарностью.


может быть связано: C++ Boost.ASIO async_read_until slow

+0

вы пробовали включение [отслеживание обработчика] (http://www.boost.org/doc/libs/release /doc/html/boost_asio/overview/core/handler_tracking.html)? Какой сетевой транспорт вы используете? –

ответ

2

Считанные не медленно, вы просто забыли указать близкий заголовок:

request_stream << "Connection: close\r\n"; 

Это делает процесс быстрым.

Обратите внимание, что отладочный вывод не был «мгновенным» из-за буферизации, попробуйте

std::cout.setf(std::ios::unitbuf); 
Смежные вопросы