iso*_*rik 2 iphone int networking nsoutputstream
我在将位置坐标传送到我在网络上连接的一组电机时遇到问题.我可以发送一个字符串就好了,并从电机接收文本,但我似乎无法发送一个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]];
Run Code Online (Sandbox Code Playgroud)
好吧,你的代码看起来很有趣.无论如何,为了通过网络发送二进制整数,你必须知道endianess:接收器要么是小的,要么是大的endian整数.
这是两个代码:
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)];
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1363 次 |
| 最近记录: |