如何通过多点连接发送多组数据

How to send multiple sets of data through multipeer connectivity

我希望能够使用

appDelegate.mpcHandler.session.sendData 

但是在接收端没有办法获得相同的变量,例如据我所知接收任何数据你必须写这样的东西

func session(session: MCSession!, didReceiveData data: NSData!, fromPeer peerID: MCPeerID!) {
    NSLog("%@", "didReceiveData: \(data.length) bytes")
    let str = NSString(data: data, encoding: NSUTF8StringEncoding) as! String
} 

有没有其他人知道在多点连接中发送和接收多组数据的任何方式,因为我希望能够不断地播放歌曲的持续时间,但在歌曲的开头我需要发送出歌名。

您可以通过将字典转换为 NSData 来发送字典,如下所示:

        let data = NSKeyedArchiver.archivedDataWithRootObject(dictionary)

在接收方,它看起来像这样:

override func session(session: MCSession, didReceiveData data: NSData, fromPeer peerID: MCPeerID) {
    let dictionary = NSKeyedUnarchiver.unarchiveObjectWithData(data) as! Dictionary<String, AnyObject>
    NSLog("Peer \(peerID) has sent message \(dictionary)")
    .....
}

这将允许您发送初始数据。然后你会使用

- startStreamWithName:toPeer:error:

开始发送流。这将创建一个连接的字节流 (NSOutputStream),您可以使用它向指定的对等方发送数据。