0
我在Swift 3中編寫了一個非常簡單的基於套接字的命令行工具,但是我的流並沒有調用委託方法。例如,當我檢查字節是否可用時,有可用的字節,但委託方法尚未被調用。這裏是我的連接代碼:Swift 3 Socket問題
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()
}
你可以嘗試用mainRunLoop而不是當前的。 – Hasya
我嘗試過,但它有相同的結果。 – wt65074
我建議你去https://github.com/tidwall/SwiftWebSocket,使用這個包裝類,我用它在我的項目。它非常耐用和堅固耐用。 – Hasya