使用NSOutputStream发送字节数组

法德尔·萨巴格

我必须将8字节数组发送到IP,我的数据作为NSMutableArray包含0到255之间的整数值,据我所知,在发送之前必须将其转换为nsdata。

NSString *error;
NSData *data = [NSPropertyListSerialization dataFromPropertyList dataTobeSent format:NSPropertyListBinaryFormat_v1_0 errorDescription:&error];

[outputStream write:[data bytes] maxLength:[data length]];

我正在使用这种方式,但是它给了我超过8个字节的NSdata对象

任何帮助将不胜感激

杰罗姆·迪亚兹(Jerome Diaz)

您对NSPropertyListSerialization做出了错误的假设,无论您指定哪种格式,它都会构造一个NSData对象,该对象可以转换回propertyList对象,因此您将不仅拥有原始数据。

你应该做类似的事情

uint8_t dataArray[8]; // an 8 byte array
for (NSInteger i = 0; i < 8; i++) {
    dataArray[i] = (uint8_t) [dataTobeSent[0] integerValue];
}

[outputStream write:dataArray maxLength:8];

确保您的dataTobeSent实际上是一个具有8个值的数组,否则请修改代码

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章