буфер python IRC не очищается - PullRequest
       20

буфер python IRC не очищается

1 голос
/ 27 февраля 2011

У меня есть просто буферная система для моего IRC-бота, поэтому он никогда не пропускает строки из-за задержки в сети и тому подобного. Я использую следующий код для запуска цикла, который обрабатывает информацию, полученную с сервера:

while 1: #Start the main loop
    self.readbuffer += s.recv(1024).decode()
    temp=self.readbuffer.split("\n")
    self.readbuffer=temp.pop()

Проблема в том, что кажется, что буфер никогда не очищается, поэтому каждый раз, когда я хочу что-то делать с данными, он просматривает все. Поэтому, если я скажу боту что-то сделать, он тоже сделает все, что делал раньше. Благодаря отладке я подтвердил, что буфер действительно никогда не очищается. Итак ... на основании приведенного выше кода (единственный код, который когда-либо изменяет буфер), в чем моя проблема? Спасибо за чтение.

1 Ответ

0 голосов
/ 27 февраля 2011

Где вы пытаетесь очистить буфер?

self.readbuffer += s.recv(1024).decode() добавляет больше данных в буфер чтения. temp=self.readbuffer.split("\n") превращает readbuffer в список однострочных строк self.readbuffer=temp.pop() делает readbuffer последней строкой

Если readbuffer никогда не уменьшается, это должно быть потому, что вы никогда не получите символ новой строки. Возможно, IRC использует '\r' или какой-либо другой код для обозначения нового сообщения?

...