Как очистить CocoaAsyncSocket? - PullRequest
2 голосов
/ 18 ноября 2011

Есть ли способ очистить внутренние буферы / очереди / и т.д. CocoaAsyncSocket (GCDasyncSocket)?

Я хочу настроить среду, в которой при вызове метода [... readDataWithTimeout ..] я не хочу, чтобы он считывал оставшиеся ненужные данные из предыдущего соединения, которые могут иметь был забуферен и где-то сидит.

Или иногда я просто хочу проигнорировать поток данных и начать все сначала, поэтому хочу обеспечить чистоту канала.

Ответы [ 2 ]

0 голосов
/ 07 февраля 2019

Обязательно отправляйте \ 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)
    }
}
0 голосов
/ 19 ноября 2011

Я также задавал этот вопрос в Google Group CocoaAsyncSocket, и Робби Хэнсон был достаточно любезен, чтобы уточнить его ответ .

...