estoy leyendo desde un boost::asio::ip::udp::socket
así:impulso dinámicamente tamaño asio :: :: búfer
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);
Ahora, esto funciona perfectamente bien, pero la cantidad máxima de caracteres que soy capaz de recibir es ahora 127. Sin embargo, tengo un problema porque necesito aceptar algunos datos cuya longitud puede variar mucho (y no es de una longitud bien definida con encabezados prefijados, por ejemplo). Una solución a esto sería un buffer de expansión dinámica, como un vector. ¿Es posible crear un boost::asio::buffer
que se expanda dinámicamente para aceptar cantidades de entrada infinitas (teóricas) y almacenarlas en un contenedor?
+1 ¡Tienes toda la razón! Sin embargo, me interesaría un 'boost :: asio :: buffer' dinámico, no porque 64KiB sea tan grande, pero un búfer dinámico a menudo parece mucho más apropiado y para su reutilización en TCP. – orlp
@nightcracker con TCP, asio llama al controlador de lectura cuando el búfer está lleno, por lo que puede vaciarlo y volver a leerlo. – Cubbi