ios - 使用 NSOutputStream 发送字节数组

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

任何帮助将不胜感激

最佳答案

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

你应该做类似的东西

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

关于ios - 使用 NSOutputStream 发送字节数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28501967/

相关文章:

ios - iPad编程,有什么方法可以编程反转颜色?

html - 背景图像右侧的黑色边框和偏离中心的个人资料图像

iphone - 如何在 iPhone sdk 的触摸方向上拉伸(stretch)图像?

ios - 从内存中的 NSOutputStream 获取 NSData?

swift - 将 Int 转换为 UnsafePointer<UInt8>

ios - NSOutputStream 打开后不能立即写入?

ios - 在 'Edit' 模式下向 UITableView 添加部分

iphone - 为什么 UIWebView 吃这么多内存?

iPhone应用程序: How was Emoji programmed?

ios - 用于写入更大的 CSV 文件的 CHCSVWriter 内存使用情况