gpt4 book ai didi

c++ - 如何组合三个变量以使用boost asio发送?

转载 作者:行者123 更新时间:2023-11-30 01:57:19 28 4
gpt4 key购买 nike

我正在尝试使用 boost asio 发送一组三个变量,一个 64 位整数和两个 32 位整数。我知道如何使用 boost asio 发送数据,但我正在努力将这三个变量转换成我可以使用 boost asio 发送的东西,有什么想法吗?

我为变量使用的类型如下:

boost::uint64_t
boost::uint32_t
boost::uint32_t

这样做的目的是将数据作为 UDP Tracker 连接请求(Bittorrent 协议(protocol))发送,可以在此处找到其描述:http://www.bittorrent.org/beps/bep_0015.html#udp-tracker-protocol

Offset  Size            Name            Value
0 64-bit integer connection_id 0x41727101980
8 32-bit integer action 0 // connect
12 32-bit integer transaction_id
16

最佳答案

创建原始内存缓冲区。使用 endian-aware 复制函数将整数放入缓冲区。发送缓冲区。

比特流协议(protocol)使用什么字节序?它是大端,所以这里任何依赖于转换的解决方案现在都不适用于典型的消费电子产品,因为它们在内存中使用小端格式。因此,在创建要发送的缓冲区时,您还必须交换字节。

关于c++ - 如何组合三个变量以使用boost asio发送?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18853149/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com