2013-04-08 18 views
5

Piszę bota IRC w Pythonie.Python, odtworzyć gniazdo i automatycznie ponownie połączyć

Źródło: http://pastebin.com/gBrzMFmA (przepraszam za pastebin, nie wiem jak efficently/prawidłowo użyć kodu tagthing tutaj)

Kiedy umiera „IRC” gniazdo, jest mimo to mogę iść o wykrycie, czy jego martwe, a następnie automatycznie łączące się ponownie?

Byłem googling teraz i stwierdził, że będę musiał utworzyć nowe gniazdo. Próbowałam i dodaje rzeczy jak łapanie socket.error w czasie prawdziwe: ale wydaje się po prostu spędzać czas, a nie ponownie poprawnie ..

Dzięki za pomoc z góry

+0

jaki masz kod? – User

Odpowiedz

5

tutaj odpowiedzi: Python : Check if IRC connection is lost (PING PONG?)

While właściciela wątpliwość zaakceptował odpowiedź działa, wolę odpowiedź Johna Ledbetter tu, soley w swej prostocie: https://stackoverflow.com/a/6853352/625919

Więc dla mnie, mam coś na wzór

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() 
+0

czy to nie działa tylko wtedy, gdy istnieje ciągły strumień danych do odbioru? Wygląda na to, że po prostu ponownie połączy się z chwilą otrzymania pustego pakietu z serwera? – user1561108

Powiązane problemy