如何通过多点连接发送多组数据
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),您可以使用它向指定的对等方发送数据。
我希望能够使用
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),您可以使用它向指定的对等方发送数据。