import CocoaAsyncSocket
class NetworkTool: NSObject {
/// TCP
private lazy var tcp: GCDAsyncSocket = {
return GCDAsyncSocket(delegate: self, delegateQueue: .main)
}()
/// tcp握手
func tcpConnect(host: String) {
do {
try self.tcp.connect(toHost: host, onPort: self.tcpPort)
} catch _ {
NSLog("tcp握手失败")
}
}
/// 断开tcp
func tcpDisconnect() {
self.tcp.disconnect()
}
}
// MARK: TCP
extension NetworkTool: GCDAsyncSocketDelegate {
// 连接成功
func socket(_ sock: GCDAsyncSocket, didConnectToHost host: String, port: UInt16) {
print("\n已连接: \nhost:\(host) \nport:\(port)" )
}
// 读取服务器发来的数据
func socket(_ sock: GCDAsyncSocket, didRead data: Data, withTag tag: Int) {
// 对data进行处理
}
// 每次写入成功后,sock需要执行一次readData
func socket(_ sock: GCDAsyncSocket, didWriteDataWithTag tag: Int) {
sock.readData(withTimeout: -1, tag: 0)
}
// 断开连接
func socketDidDisconnect(_ sock: GCDAsyncSocket, withError err: Error?) {
print("\n已断开连接")
}
}
【Swift】CocoaAsyncSocket-TCP
最新推荐文章于 2024-03-25 09:30:43 发布