2011-02-27 5 views
1

IRC 봇을위한 단순한 버퍼 시스템이있어서 네트워크 지연 등으로 인해 라인을 놓치지 않습니다. I는 서버로부터 수신 된 정보를 처리하는 루프를 시작하려면 다음 코드를 사용하고 있습니다 :파이썬 IRC 버퍼가 지워지지 않음

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

문제는 버퍼가 결코 그래서 언제든지 내가 데이터 뭔가를하고 싶어, 클리어없는 것 같습니다 것입니다 그것은 모든 것을 반복합니다. 그래서 봇에게 뭔가를하도록 말하면, 이전에 수행 한 모든 작업을 수행합니다. 디버깅을 통해 버퍼가 실제로 지워지지 않았 음을 확인했습니다. 그래서 ... 위의 코드 (버퍼를 수정하는 유일한 코드)를 기반으로 내 문제는 무엇입니까? 읽어 주셔서 감사합니다.

답변

0

어디에서 버퍼를 지우려고합니까?

self.readbuffer += s.recv(1024).decode()은 더 많은 데이터를 readbuffer에 추가합니다. temp=self.readbuffer.split("\n")self.readbuffer=temp.pop()가 마지막 줄

저는 ReadBuffer하게 한 줄 문자열 목록에 저는 ReadBuffer집니다 저는 ReadBuffer가 작아지는 않을 경우 개행 문자를 수신하지 않기 때문에, 그것은해야합니다. 아마도 IRC는 '\r' 또는 다른 코드를 사용하여 새 게시물을 나타낼 수 있습니까?

관련 문제