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
Vous devez vous connecter pour publier un commentaire.
Vous avez besoin pour obtenir un
mutable_buffers_type
de lastreambuf
à utiliser comme premier paramètre àasync_read_some
.Voir le
asio
documentation ici et ici pour plus d'info.