c ++ Boost async_read_some + старые данные в буфере

Есть небольшой прокси-сервер, который передает запрос — получает ответ — выдает браузер. +/- все работает, но в нем есть одни баги.
Я получаю данные от клиента следующим образом:

   void handle_handshake(const boost::system::error_code& error, int num)
{
if (!error)
{

socket_.async_read_some(boost::asio::buffer(data_, 1024),
boost::bind(&Session::handle_read, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred, num));
}
else
{
delete this;
}
}

void handle_read(const boost::system::error_code& error,
size_t bytes_transferred, int num)
{
if (!error)
{

std::cout << "data_: " << data_ << std::endl;

}

}

В data_ (char data_ [1024]) записываются данные, и иногда они получают данные из старого запроса, например:

HTTP/1.0 200 OK
Content-Type: application/json
UserIP: 127.0.0.1
Host: test.com
Connection: keep-alive
Origin: https://test.com
User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML,like Gecko) Chrome/70.0.3538.110 Safari/537.36
Content-Type: application/json
Accept: */*
Referer: https://test.com/
Accept-Language: ru,en-US;q=0.9,en;q=0.8,uk;q=0.7
Cookie: _ga=GA1.2.508780938.1527764085
Accept-Encoding: gzip, deflate
Content-Length: 39

{"code":"-1","msg":"","result":"err"}

Accept-Language: ru,en-US;q=0.9,en;q=0.8,uk;q=0.7
Cookie: _ga=GA1.2.508780938.1527764085
Accept-Encoding: gzip, deflate
Content-Length: 104

Соответственно, пакет должен был заканчиваться {«code»: «- 1», «msg»: «», «result»: «err»} …

Пожалуйста помоги. как очистить буфер, после чтения или как организовать чтение данных из сокета? Заранее спасибо!

0

Решение

Задача ещё не решена.

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]