iphone – GameKit蓝牙传输问题

iphone – GameKit蓝牙传输问题,第1张

概述我正在尝试使用GameKit框架通过蓝牙发送文件.我遇到的问题是我一次只能发送一个NSData对象,但我需要在另一端保存它.如果不知道文件名,这显然是不可能的,但我不知道如何传输它.我试图将它转换为字符串NSData * data = [NSData dataWithContentsOfFile:urlAddress];但我只能发送一个NSData对象,而不是两个. 有人遇到过这个问题吗? 使用G 我正在尝试使用GameKit框架通过蓝牙发送文件.我遇到的问题是我一次只能发送一个NSData对象,但我需要在另一端保存它.如果不知道文件名,这显然是不可能的,但我不知道如何传输它.我试图将它转换为字符串NSData * data = [NSData dataWithContentsOffile:urlAddress];但我只能发送一个NSData对象,而不是两个.

有人遇到过这个问题吗?

解决方法 使用GameKit一段时间后我发现每个’发送’的限制大约为90k,所以如果你的文件大于90k你将不得不将其分解.以下是我建议你解决问题的方法:

1st – 发送文件名

NSData* filenameData = [filenameStr dataUsingEnCoding: NSASCIIStringEnCoding];// send 'filenameData'

第二 – 发送您要发送的块数

NSUInteger fiftyK = 51200;NSUInteger chunkCount = (((NSUInteger)(srcdata.length / fiftyK)) + ((srcdata.length % fiftyK) == 0 ) ? 0 : 1))Nsstring chunkCountStr = [Nsstring stringWithFormat:@"%d",chunkCount];NSData* chunkCountData = [chunkCountStr dataUsingEnCoding: NSASCIIStringEnCoding];// send 'chunkCountData'

3rd – 分解并将你的NSData对象发送到一组每个小于50k的NSObjects(只是为了安全大小)

NSData *dataToSend;NSRange range = {0,0};for(NSUInteger i=0;i<srcdata.length;i+=fiftyK){  range = {i,fiftyK};  dataToSend = [srcdata subdataWithRange:range];  //send 'dataToSend'  }NSUInteger remainder = (srcdata.length % fiftyK);if (remainder != 0){  range = {srcdata.length - remainder,remainder};  dataToSend = [srcdata subdataWithRange:range];  //send 'dataToSend'  }

在接收方,您需要执行以下 *** 作:

1st – 接收文件名

// Receive dataNsstring* filenameStr = [[Nsstring alloc] initWithData:receivedData enCoding:NSASCIIStringEnCoding]

第二 – 接收您即将收到的块数

// Receive dataNsstring* chunkCountStr = [[Nsstring alloc] initWithData:receivedData enCoding:NSASCIIStringEnCoding]NSUInteger chunkCount = [chunkCount intValue];

3 – 接收数据块

NSMutableData data = [[NSMutableData alloc]init];for (NSUInteger i=0; i<chunkCount;i++){  // Receive data  [data appendData:receivedData];}

如果一切正常,您现在将拥有一个包含文件名的filenameStr对象和一个包含文件内容的数据对象.

希望这会有所帮助 – AYAL

总结

以上是内存溢出为你收集整理的iphone – GameKit蓝牙传输问题全部内容,希望文章能够帮你解决iphone – GameKit蓝牙传输问题所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1071117.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-26
下一篇 2022-05-26

发表评论

登录后才能评论

评论列表(0条)

保存