多路连接:同时将文件共享给所有对等体

时间:2014-11-28 08:17:17

标签: ios file session multipeer-connectivity

我正在研究一个主题多重连接框架。我使用以下链接了解了这个框架:

http://www.appcoda.com/intro-multipeer-connectivity-framework-ios-programming/

但我的问题是,我可以向所有连接的对等方发送聊天消息,并由他们接收。但我需要在文件共享中使用相同的功能。我需要同时向所有连接的对等体发送文件。这可能吗????

2 个答案:

答案 0 :(得分:1)

是的,有可能。如果你想发送大文件(如几十兆字节或更多),我建议使用方法sendResourceAtURL:withName:toPeer:withCompletionHandler`` instead of sendData:toPeers:withMode:error:`。

这样您就不必立即将整个文件加载到内存中(这可能会触发内存警告甚至崩溃)。您还可以获得NSProgress作为返回值,以便向用户显示转移进度。

NSURL* fileUrl = [NSURL fileURLWithPath:...];   //get the path of the file you'd like to send
    NSString* resourceName = @"<name to display>";
    for(MCPeerID *peer in session.connectedPeers) {
        [session sendResourceAtURL:fileUrl withName:resourceName toPeer:peer withCompletionHandler:^(NSError *error) {
            //handle transfer completion or error
        }];
    }

答案 1 :(得分:0)

只要您可以将文件转换为NSData对象,就可以显示它。

理论上,如果你改变这一行:

NSData *dataToSend = [_txtMessage.text dataUsingEncoding:NSUTF8StringEncoding];

为:

NSData *dataToSend = [NSData dataWithContentsOfFile:@"Path to the file."];

并保持其余部分仍然有效。