0
Swift 3では非常に単純なソケットベースのコマンドラインツールを作成していますが、私のストリームはデリゲートメソッドを呼び出すことはありません。たとえば、バイトが使用可能かどうかをチェックすると、使用可能なバイトがありますが、デリゲートメソッドが呼び出されていません。ここに私の接続コードは次のとおりです。Swift 3ソケットの問題
func connect() {
print("Socket Connection")
let ipAddress = "127.0.0.1" as CFString
let portNumber: UInt32 = 8080
var readStream: Unmanaged<CFReadStream>?
var writeStream: Unmanaged<CFWriteStream>?
CFStreamCreatePairWithSocketToHost(nil, ipAddress, portNumber, &readStream, &writeStream)
self.inputStream = readStream!.takeRetainedValue()
self.outputStream = writeStream!.takeRetainedValue()
self.inputStream?.delegate = self
self.outputStream?.delegate = self
self.inputStream?.schedule(in: RunLoop.current, forMode: RunLoopMode.defaultRunLoopMode)
self.outputStream?.schedule(in: RunLoop.current, forMode: RunLoopMode.defaultRunLoopMode)
self.inputStream?.open()
self.outputStream?.open()
}
currentではなくmainRunLoopで試すことができますか? – Hasya
私はそれを試みたが、それは同じ結果を持っていた。 – wt65074
https://github.com/tidwall/SwiftWebSocketに行って、このラッパークラスを使用することをお勧めします。これは私のプロジェクトで使用しています。それは非常に耐久性があり、堅牢です。 – Hasya