1

私のプログラムは、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++;
        }
    }

受信したバイナリデータを文字配列に書き込む関数を探しています。

4

1 に答える 1

3

たとえば、読み取りを使用できます。

stream.read(ret, bytes);

またはsgetnを使用できます

response.read(ret, bytes);

または、他のものを使用できます。

于 2015-12-29T12:02:49.393 に答える