通过Boost Asio获取UDP数据报长度
Get UDP datagram length via Boost Asio?
是否可以通过Boost Asio获取UDP数据报的长度?UDP标头有一个指定UDP数据包长度的字段。有可能通过Boost Asio获得这个值吗?如果没有,如何确定数据包的长度?
asio
允许您在执行读取时绑定完成处理程序。完成处理程序的参数之一是数据包长度。
读取的完成处理程序必须满足中指定的要求http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/reference/ReadHandler.html
例如,看看http://www.boost.org/doc/libs/1_55_0/doc/html/boost_asio/example/cpp03/echo/async_udp_echo_server.cpp.在对async_receive_from
的调用中,指定读取完成后要调用的完成处理程序:
socket_.async_receive_from(
boost::asio::buffer(data_, max_length), sender_endpoint_,
boost::bind(&server::handle_receive_from, this,
boost::asio::placeholders::error,
boost::asio::placeholders::bytes_transferred));
因此,当执行完成处理程序handle_receive_from
时,asio将读取的字节大小传递给处理程序。
void handle_receive_from(const boost::system::error_code& error,
size_t bytes_recvd)
相关文章:
- 如何使用 asio 本地数据报构建回显服务器和客户端?
- 连接UDP套接字,但仍然接收来自其他源的数据报
- UDP 客户端(接收器)未按预期接收数据报
- QT UDP套接字返回空数据报
- 在Wireshark中看到的数据报,未由QT UDP套接字收到
- QUdpSocket:无法接收数据报
- Udp 在 QT 定时器信号中写入数据报
- 是否可以在数据报套接字中同时用于发送和接收
- 通过Boost Asio获取UDP数据报长度
- QUdpsocket在处理前一个数据报时丢失数据报
- UDP 数据报套接字编程,服务器在 JAVA 中,客户端在 C++
- 如何修改数据报原始TCP/IP
- 数据报Unix套接字上的ECONNREFUSED
- Qt数据报结构结果:混合序列
- UDP数据报计数
- Boost.Asio数据报(UDP)套接字,既绑定又连接
- 用UDP发送数据报
- Boost 的 UDP 异步客户端接收自己的数据报
- 通过环回适配器在同一套接字上发送数据报(UDP)winsocket和recvfrom的C++问题
- 通过internet发送UDP数据报