gpt4 book ai didi

iphone - 将 64 位 int 值写入 NSOutputStream

转载 作者:行者123 更新时间:2023-12-03 20:22:30 24 4
gpt4 key购买 nike

我在与网络上连接的一组电机传送位置坐标时遇到问题。我可以很好地发送一个字符串,并从电机接收回文本,但我似乎无法向它发送一个 int 值。

使用 NSlog 我已经确定我发送的实际值是正确的,但是我怀疑我通过输出流发送它的方法是错误的。有任何想法吗?

我发送 64 位 int 值的代码:

uint64_t rawInt = m1; 
rawInt <<= 16;
rawInt |= m2;
NSData *buffer = [NSData dataWithBytes: &rawInt length:8];
[outputStream write: [buffer bytes] maxLength:[buffer length]];

最佳答案

嗯,你的代码看起来有点有趣。无论如何,为了通过网络发送二进制整数,您必须知道字节序:接收器期望小字节序或大字节序整数。

这是两者的代码:

uint64_t myInt = 42;

uint64_t netInt = CFSwapInt64HostToLittle(myInt); // use this for little endian
uint64_t netInt = CFSwapInt64HostToBig(myInt); // use this for big endian

[outputStream write:(uint8_t*)&netInt maxLength:sizeof(netInt)];

关于iphone - 将 64 位 int 值写入 NSOutputStream,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3239284/

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