我在 10.9 上使用 Xcode beta 3 编写一个使用 GCDAsyncSocket 的服务器。以下代码返回 true 并且不会产生错误,但 Network Utility 表示端口 5050 未打开。
var tcpSocket = GCDAsyncSocket(delegate: self, delegateQueue: dispatch_get_main_queue())
let lPort: UInt16 = 5050;
var listenError : NSError?
let listening = tcpSocket.acceptOnPort(lPort, error: &listenError)
if listenError {
println("Error opening listen socket \(listenError!.localizedDescription)")
} else {
println("Opened listen port")
}
在同一台机器上,在相同版本的 Xcode 中,ObjC 等效程序运行良好并在 5050 上打开一个端口。我的代码、GCDAsyncSocket、Swift 或 Xcode 有问题吗?
TIA。
最佳答案
我遇到了同样的问题。作为一种变通方法,将监听端口指定为 0 让操作系统选择要使用的端口似乎对我有用。
关于 swift GCDAsyncSocket acceptOnPort :Error: not opening a port?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24765439/