目前我正在开发一个程序,我使用NSNetService类连接两个IOS设备。我能够连接两个设备,但我不知道如何使用getInoutStream函数发送数据。任何伙伴都可以帮助我。
答案 0 :(得分:1)
为什么不使用multipeer?对于您正在尝试的内容,这是一个更简单的解决方案。 NSNetService也有一些已知的错误。但是,您可以通过在NSNetService上设置Bonjour连接来在两者之间发送数据。 getInputStream方法需要类型为UnsafeMutablePointer:
的参数 org 00H
MOV P3DIR, #0x00 ; Set direction of P3...
Start:
JB P1.0, P1Set
JB P2.0, P1NotSetP2Set
SJMP None
P1Set:
JB P2.0, P1SetP2Set
SJMP P1SetP2NotSet
P1SetP2Set:
SETB P3.0
CLRB P3.1
CLRB P3.2
SJMP Start
P1SetP2NotSet:
CLR P3.0
SETB P3.1
CLR P3.2
SJMP Start
P1NotSetP2Set:
CLR P3.0
CLR P3.1
CLR P3.2
SJMP Start
None:
SETB P3.0
CLR P3.1
SETB P3.1
SJMP Start
end
然后只使用内存流写入数据,它将被传递给侦听器端口。
这是完成的代码:
此功能在127.0.0.1
上启动连接 public func getInputStream(inputStream: UnsafeMutablePointer<NSInputStream?>, outputStream: UnsafeMutablePointer<NSOutputStream?>) -> Bool
var inputStream : NSInputStream?
var outputStream : NSOutputStream?
let success = service.getInputStream(&inputStream, outputStream: &outputStream)
这是针对流IO:
func initNetworkCommunication(){
var host : CFString = "127.0.0.1"
var port : UInt32 = 7001
var readstream : Unmanaged<CFReadStream>?
var writestream : Unmanaged<CFWriteStream>?
CFStreamCreatePairWithSocketToHost(kCFAllocatorDefault, host, port, &readstream, &writestream)
inputstream = readstream!.takeRetainedValue()
outputstream = writestream!.takeRetainedValue()
inputstream.delegate = self
outputstream.delegate = self
inputstream.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode)
outputstream.scheduleInRunLoop(NSRunLoop.currentRunLoop(), forMode: NSDefaultRunLoopMode)
inputstream.open()