如何使用套接字编程将iOS Swift应用程序连接到硬件设备?

前端之家收集整理的这篇文章主要介绍了如何使用套接字编程将iOS Swift应用程序连接到硬件设备?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我想使用套接字编程将我的 Swift应用程序连接到网络硬件设备.服务器端编程已在使用C语言的硬件设备中完成.如何使用套接字编程连接设备并与之通信?我应该选择哪个库?

解决方法

如果您想要自己的套接字网络,可以使用Swift中的NSStream和CFStream API来连接/读取/写入原始网络套接字.

以下是一些有用的Swift 3片段,用于通过NSStream使用套接字:

var readStream:  Unmanaged<CFReadStream>?
var writeStream: Unmanaged<CFWriteStream>?
var inputStream   : InputStream?    =  nil
var outputStream  : OutputStream?   =  nil

let host : CFString = NSString(string: someHostIPString)
let port : UInt32   = UInt32(somePortNumber)

CFStreamCreatePairWithSocketToHost(kcfAllocatorDefault,host,port,&readStream,&writeStream)

inputStream  = readStream!.takeUnretainedValue()
outputStream = writeStream!.takeUnretainedValue()

// the enclosing class should be a StreamDelegate
//   to handle stream open,events,or errors,etc.
inputStream!.delegate   = self
outputStream!.delegate  = self

inputStream.open()
outputStream.open()

// the NSStream delegate callback(s)
func stream(_ aStream: Stream,handle eventCode: Stream.Event) {
    var n = 0
    switch (eventCode) {
    ...
    case Stream.Event.hasSpaceAvailable:
    n = self.outputStream.write(someWriteBuffer,maxLength: dataLength) 
    ...
    case Stream.Event.hasBytesAvailable:
    n = self.inputStream.read(someReadBuffer,maxLength: bufferLength)
    ...
    // etc.
    }
}

// etc.

您可能希望使用自己的runloop在自己的线程中运行上面的代码.

猜你在找的iOS相关文章