¿Cómo conectar una aplicación iOS Swift a un dispositivo de hardware mediante la progtwigción de zócalos?

Quiero conectar mi aplicación Swift a un dispositivo de hardware de networking utilizando la progtwigción de socket. La progtwigción del lado del server ya se realiza en el dispositivo de hardware usando lenguaje C. ¿Cómo puedo conectarme y comunicarme con el dispositivo usando la progtwigción de zócalos? ¿Qué biblioteca debo elegir?

Si desea hacer su propia networking de socket, las API de NSStream y CFStream se pueden usar desde Swift para conectar / leer / escribir desde / hacia sockets de networking sin formatting.

Aquí hay algunos fragments Swift 3 útiles para usar un socket a través de 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. 

Es posible que desee ejecutar el código anterior en su propio hilo con su propio runloop.