这是一个简单的套接字服务器。
如果我删除Socket
类并serverSocket
变量和startSocketServer
函数放入ViewController
类中,套接字服务器将开始侦听。
我通过lsof -i :6000
命令检查以确定套接字是否开始侦听。
怎么了?!
import UIKit
import CocoaAsyncSocket
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
let server = Socket()
server.startSocketServer()
}
}
class Socket: NSObject, GCDAsyncSocketDelegate {
var serverSocket = GCDAsyncSocket()
/// Staring socket server
func startSocketServer() {
self.serverSocket = GCDAsyncSocket(delegate: self, delegateQueue: dispatch_get_main_queue())
do {
try serverSocket.acceptOnInterface(nil, port: 6000)
} catch {
print("Port access failed")
}
}
}
我找到了解决方案:
我把套接字类定义:let server = Socket()
viewDidLoad
函数解决了我的问题。
class ViewController: UIViewController {
let server = Socket()
override func viewDidLoad() {
super.viewDidLoad()
server.startSocketServer()
}
}