使用NSOutputStream发送字节数组

时间:2015-02-13 14:39:06

标签: ios iphone 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对象

任何帮助将不胜感激

1 个答案:

答案 0 :(得分:2)

你对NSPropertyListSerialization做了一个错误的假设,无论你指定什么格式,它都会构造一个可以转换回propertyListObject的NSData对象,所以你将拥有的不仅仅是原始数据。

你应该做类似

的事情
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个值的数组,否则请调整代码