Question

Il est par exemple client HTTP http://www.boost.org/doc/libs/1_39_0/doc/html/boost_asio/example/http/client/async_client.cpp S'il vous plaît aidez-moi à Modifier la taille de la mémoire tampon maximale comme expliqué dans le code ci-dessous (il est des exemples téléchargé avec bibliothèque, pas de site):

void handle_write_request(const boost::system::error_code& err)
{
  if (!err)
  {
    // Read the response status line. The response_ streambuf will
    // automatically grow to accommodate the entire line. The growth may be
    // limited by <b>passing a maximum size to the streambuf constructor</b>.
    boost::asio::async_read_until(socket_, response_, "\r\n",
        boost::bind(&client::handle_read_status_line, this,
          boost::asio::placeholders::error));
  }
  else
  {
    std::cout << "Error: " << err.message() << "\n";
  }
}

Et voici le constructeur de tampon de réponse:

boost::asio::streambuf response_;

Mais le compilateur dit que le code suivant est incorrect:

boost::asio::streambuf response_( 1024 );

Il semble que le tampon par défaut est 512 octets de taille, j'ai besoin plus grande taille.

Était-ce utile?

La solution

1) Je ne sais pas où votre 512 octets limite vient depuis le constructeur de la asio::basic_streambuf a la signature suivante (ce qui lui permet ainsi stocker plus de 512 ou 1024 octets):

explicit basic_streambuf(
    std::size_t max_size = (std::numeric_limits<std::size_t>::max)(),
    const Allocator& allocator = Allocator())

2) Ce code boost::asio::streambuf response_(1024); est invalide puisque vous ne pouvez pas initialiser les variables membres au point de déclaration, vous devez le faire dans la liste des initialiseur du constructeur ou il est corps. Si vous ne le faites pas, il sera initialisé par défaut.

3) Le commentaire dans le code référants à limitation / restriction la taille maximale du streambuf -. Il ne sera certainement pas vous aider à obtenir « une plus grande taille », au contraire

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top