使用 Boost::Asio 通过 TCP 读取二进制数据
Read Binary Data over TCP with Boost::Asio
我的程序通过 TCP 连接接收二进制数据。使用 boost::asio
库建立连接。读取流后,我需要 return 接收到的数据作为 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++;
}
}
我正在寻找将接收到的二进制数据写入字符数组的函数。
我的程序通过 TCP 连接接收二进制数据。使用 boost::asio
库建立连接。读取流后,我需要 return 接收到的数据作为 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++;
}
}
我正在寻找将接收到的二进制数据写入字符数组的函数。