2017-06-23 17 views
4

私はSwiftアプリケーションをソケットプログラミングを使ってネットワークハードウェアデバイスに接続したいと思っています。サーバー側のプログラミングは、C言語を使用するハードウェアデバイスで既に行われています。ソケットプログラミングを使用してデバイスに接続して通信するにはどうすればよいですか?私はどのライブラリを選ぶべきですか?ソケットプログラミングを使用してiOS Swiftアプリケーションをハードウェアデバイスに接続するにはどうすればよいですか?

答えて

0

独自のソケットネットワーキングを実行する場合は、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つのスニペットです。

+0

申し訳ありません私は初心者のため、あなたの答えをよく理解していません。私は、ソケットプログラミングを使用してデバイスと通信するために使用できるライブラリを探していました。 – sreejesh

+0

上記のコードスニペットは、(Swiftの委譲コールバックを使用して)ソケットを開いたり、読み書きしたりする方法を示しています。必要なソケット通信の他の形式ですか? – hotpaw2

関連する問題