【发布时间】:2013-06-12 17:39:11
【问题描述】:
我是 boost 新手,我想发送一个具有多个数据类型值的 udp 数据包。例如我想发送一个三个字节的数据包,其中前两个字节用于消息代码,最后一个用于服务ID。我为此目的使用了 memcpy,但生成的缓冲区不包含正确和所需的值。这是我的代码。
char buff[3];
uint16_t msgCode = 23;
char serviceId = '9';
msgCode = htons(msgCode);
memcpy(buff, &msgCode, 2);
memcpy(buff+2, &serviceId, 1);
std::string data = buff;
boost::shared_ptr<std::string> message(new std::string(data));
sock.async_send_to(boost::asio::buffer(data),dest_endPoint
, boost::bind(&udp_class::handle_send, this, message, boost::asio::placeholders::error
, boost::asio::placeholders::bytes_transferred));
注意:我只在缓冲区有问题,我的意思是如何将多种类型的值插入缓冲区并作为 udp 数据包发送。
提前感谢。
【问题讨论】:
标签: c++ boost-asio