独自のソケットネットワーキングを実行する場合は、SwiftからRawネットワークソケットへの接続/読み取り/書き込みを行うためにNSStreamおよびCFStream APIを使用できます。あなたは、独自の実行ループと独自のスレッドで上記のコードを実行することをお勧めします
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.
:ここ
はNSStream経由でソケットを使用するためのいくつかの有用なスウィフト3つのスニペットです。
申し訳ありません私は初心者のため、あなたの答えをよく理解していません。私は、ソケットプログラミングを使用してデバイスと通信するために使用できるライブラリを探していました。 – sreejesh
上記のコードスニペットは、(Swiftの委譲コールバックを使用して)ソケットを開いたり、読み書きしたりする方法を示しています。必要なソケット通信の他の形式ですか? – hotpaw2