Objective c 目标C:为蓝牙传输打包文件内容的最佳方法?

Objective c 目标C:为蓝牙传输打包文件内容的最佳方法?,objective-c,file,bluetooth,file-transfer,Objective C,File,Bluetooth,File Transfer,在我的程序中,我通过与配对蓝牙设备的RFCOMM连接发送文件。接收端将接收到的字节写入文件时出现问题。然而,接收端可能不是问题的根源。这可能是我在Objective-C中加载和发送数据的方式。因此,我这里的问题是,我在RFCOMM连接上以字节形式加载和传输文件数据的方法是否可以接受。我尽量避免发布太多的代码,因为它真的会妨碍我。我只想知道是否可以像传输文件那样将文件数据加载到数组中,或者是否有更好的方法来打包数据 提前谢谢 涉及的数据类型 IOBluetoothRFCOMMChannel NSD

在我的程序中,我通过与配对蓝牙设备的RFCOMM连接发送文件。接收端将接收到的字节写入文件时出现问题。然而,接收端可能不是问题的根源。这可能是我在Objective-C中加载和发送数据的方式。因此,我这里的问题是,我在RFCOMM连接上以字节形式加载和传输文件数据的方法是否可以接受。我尽量避免发布太多的代码,因为它真的会妨碍我。我只想知道是否可以像传输文件那样将文件数据加载到数组中,或者是否有更好的方法来打包数据

提前谢谢

涉及的数据类型 IOBluetoothRFCOMMChannel NSData我的数据

加载文件代码段

传输文件数据代码段


您需要使用归档或序列化方法将字节流转换为独立于体系结构的ByTestStream,然后通过RFCOMM通道发送,并在接收端将其转换回

// Load file data into byte array.
myData = [NSData dataWithContentsOfFile: filePath];
int bytes[(int)fileSize];
[myData getBytes:bytes length:sizeof(int) * fileSize];
// Loops create an int[] chunk array that holds an amount of data from bytes[].
// These chunks (packets) are sent using...
[channel writeSync: chunk length: 1000]; // Sends the packet.