2015-12-29 2 views
1

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

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++; 
     } 
    } 

Я ищу функцию, чтобы писать полученные двоичные данные в-полукокс массив.

ответ

3

Например, вы можете использовать read.

stream.read(ret, bytes); 

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

response.read(ret, bytes); 

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

Смежные вопросы