有没有办法刷新内部缓冲区/队列/等。 CocoaAsyncSocket(GCDasyncSocket)?
我想设置一个环境,当我调用 [... readDataWithTimeout ..] 方法时,我不希望它从以前的连接中读取任何剩余的垃圾数据已被缓冲并坐在某处。
或者有时我只是想忽略数据流并重新开始,所以要确保干净的管道。
答案 0 :(得分:0)
我也在CocoaAsyncSocket Google Group中提出了这个问题,Robbie Hanson很友好地用his answer详细说明。
答案 1 :(得分:0)
确保在写入数据后发送\ n或\ r。 我已经编写了一个套接字管理器类,您可以在这里检查它:CocoaAsyncSocketManager
示例代码:
func sendMessage(messageString msg: String) {
if let _data = msg.data(using: .utf8), let _carriageReturn = "\r".data(using: .utf8) {
tcpSocket?.write(_data, withTimeout: -1, tag: 0)
tcpSocket?.write(_carriageReturn, withTimeout: -1, tag: 99)
}
}