我正在读取boost :: asio :: ip :: udp :: socket,如下所示:
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);
现在,这完全正常,但我能够接收到的最大字符数现在是127.但是我遇到了一个问题,因为我需要接受一些数据输入,其长度可以大大改变(并且不是很好 – 带有前缀标题的定义长度,例如).对此的解决方案是动态扩展缓冲区,如向量.是否有可能创建一个动态扩展的boost :: asio :: buffer来接受(理论上)infite量的输入并将其存储在容器中?
解决方法
UDP数据报大小并没有太大变化:它永远不会大于
65535,在8字节头之后留下65,527字节数据的空间.