2013-04-08 1 views
5

저는 파이썬에서 IRC 봇을 작성하고 있습니다.파이썬에서 소켓을 다시 만들고 자동으로 다시 연결합니다.

출처 : http://pastebin.com/gBrzMFmA는 "IRC"소켓이 죽었을 때

(페이스트 빈에 대한 미안 해요, 난과 효과적으로/제대로 여기에 tagthing 코드를 사용하는 방법을 모른다) 어쨌든이 나는 경우 탐지에 대해 갈 수 죽은 다음 자동으로 다시 연결됩니까?

나는 잠시 현재 인터넷 검색을하고 있었고 새로운 소켓을 만들어야한다는 것을 알았습니다. 나는 노력과 참 동안 socket.error을 잡기 같은 물건을 추가되었습니다하지만 단지 올바르게 다시 걸고하지 않는 것 같습니다 .. 도움

사전에 감사

+0

어떤 코드가 있습니까? – User

답변

5

여기 답변 : Python : Check if IRC connection is lost (PING PONG?)

동안을 https://stackoverflow.com/a/6853352/625919

그래서, 나를 위해, 내가

def connect(): 
    global irc 
    irc = socket.socket(socket.AF_INET, socket.SOCK_STREAM) 
    irc.connect((server, port)) 
    #and nick, pass, and join stuffs 
connect() 
while True: 
    data = irc.recv(4096) 
    if len(data) == 0: 
     print "Disconnected!" 
     connect() 
의 라인을 따라 뭔가를 : 질문 소유자의 허용 대답은 내가 단순위한 용도로만 여기에 존 Ledbetter의 답변을 선호 작동
+0

수신 할 데이터의 연속 스트림이있는 경우에만 작동합니까? 서버에서 빈 패킷을받은 순간에 다시 연결되는 것처럼 보입니까? – user1561108