ブーストは初めてです。複数のデータ型の値を含む udp パケットを送信したいと考えています。たとえば、最初の 2 バイトがメッセージ コードに使用され、最後の 1 バイトがサービス ID に使用される 3 バイトのパケットを送信したいとします。この目的で 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 パケットとして送信する方法です。
事前に感謝します。