Читать двоичные данные по TCP с Boost :: Asio

Моя программа получает двоичные данные через TCP-соединение. Соединение устанавливается с помощью boost::asio библиотека. После прочтения потока мне нужно вернуть полученные данные как char*-Array. Вот что у меня так далеко:

char* read()
{
boost::system::error_code ec;

boost::asio::streambuf response;
size_t bytes = boost::asio::read(this->socket_, response, ec);

if(ec.value() != boost::system::errc::success)
{
cout << "In " << BOOST_CURRENT_FUNCTION << ": " << ec.category().name() << ':' << ec.value() << endl;
return "";
}

std::istream stream(&response);

char* ret = new char[bytes]{0};
int i = 0;
while(!stream.eof())
{
// ..??.. Write into char array
i++;
}
}

Я ищу функцию для записи полученных двоичных данных в массив символов.

1

Решение

Ты можешь использовать читать например.

stream.read(ret, bytes);

или вы можете использовать sgetn

response.read(ret, bytes);

или вы можете использовать любую другую вещь.

3

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

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