2014-01-17 2 views
3

나는 this example에서 가져온 클라이언트 코드를 약간 수정했습니다. 내가 지금 가지고있는 문제는 그 부스트입니다 : asio : 읽기 전화 정말 느린, 어딘가에 초당 약 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); 
관련 문제