Utilisez streambuf comme tampon pour booster asio lire et écrire

Je suis en utilisant ce code pour la lecture de

  socket_.async_read_some(boost::asio::buffer(data_, max_length),
        boost::bind(&session::handle_read, this,
        boost::asio::placeholders::error,
        boost::asio::placeholders::bytes_transferred));

et ce pour l'écriture

boost::asio::async_write(socket_,
    boost::asio::buffer(data_, bytes_transferred),
    boost::bind(&session::handle_write, this,
    boost::asio::placeholders::error));

où socket_ est prise, max_length est enum avec la valeur 1024 et data_ est char tableau avec une longueur de max_length.

Mais je veux remplacer char tableau tampon avec streambuf. J'ai essayé

  boost::asio::streambuf streamBuffer;
  socket_.async_read_some(boost::asio::buffer(streamBuffer),
        boost::bind(&session::handle_read, this,
        boost::asio::placeholders::error,
        boost::asio::placeholders::bytes_transferred));

Mais ne fonctionne pas. Comment puis-je le faire ?

source d'informationauteur user1307957