che sto leggendo da un boost::asio::ip::udp::socket
come questo:spinta dinamicamente dimensioni :: :: asio tampone
using boost::asio::ip::udp;
// ...
char recv_buf[128];
udp::endpoint sender_endpoint;
size_t len = socket.receive_from(boost::asio::buffer(recv_buf), sender_endpoint);
Ora, questo funziona perfettamente bene, ma l'importo massimo di caratteri che sono in grado di ricevere è ora 127. Tuttavia sto affrontando un problema perché devo accettare alcuni input di dati di cui la lunghezza può variare molto (e non è di lunghezza ben definita con intestazioni prefissate, per esempio). Una soluzione a questo sarebbe un buffer espandibile dinamicamente, come un vettore. È possibile creare un boost::asio::buffer
dinamicamente in espansione per accettare (teorico) quantità infite di input e memorizzarlo in un contenitore?
+1 Hai completamente ragione! Sarei comunque interessato ad un dinamico 'boost :: asio :: buffer', non perché 64KiB sia così grande, ma un buffer dinamico sembra spesso molto più appropriato, e per il riutilizzo in TCP. – orlp
@nightcracker con TCP, asio chiama il gestore di lettura quando il buffer è pieno, quindi è possibile svuotarlo e tornare alla lettura. – Cubbi