Hallo !
Habe mal versucht ein Chat-Client zu programmieren, doch so richtig will es nicht. Konnte es auch nur mit threading loesen, da die after-Methode sich aufhaengt.
Den Code kann man fuer zwei Client nutzen - nur SERVER- und CLIENT_PORT vertauschen, dann laueft es auch auf localhost.
http://paste.pocoo.org/show/83670/
gruss frank
socket +Tk -Gui
Ich glaube es ist nicht das erste mal, das ich schreibe, das Threads und GUIs sich nicht so vertragen. Das Programm ist kaputt.
Komische Definition von "funktioniert ja" wenn das jederzeit abstürzen kann. Nur weil Dir das noch nicht passiert ist, heisst das nicht, dass es ein robustes Programm ist.
Hallo !
Habe mal das threading rausgenommen und das blocken beim Empfang der Daten aufgehoben.
http://paste.pocoo.org/show/84638/
Bei mir funktioniert es mal.
Bei der "try und except" Anweisung konnte ich den Fehler nicht rausbekommen. Hier mal die Fehlermeldung.
gruss frank
Habe mal das threading rausgenommen und das blocken beim Empfang der Daten aufgehoben.
http://paste.pocoo.org/show/84638/
Bei mir funktioniert es mal.
Bei der "try und except" Anweisung konnte ich den Fehler nicht rausbekommen. Hier mal die Fehlermeldung.
Code: Alles auswählen
Exception in Tkinter callback
Traceback (most recent call last):
File "/usr/lib/python2.5/lib-tk/Tkinter.py", line 1406, in __call__
return self.func(*args)
File "client_2.py", line 43, in start_chat
message, client_ip = self.client.get_message()
File "client_2.py", line 81, in get_message
message, (client_ip, client_port) = self.s.recvfrom(self.BUFSIZE)
error: (11, 'Resource temporarily unavailable')
Hallo !
Der Error muss im CHAT_CLIENT gesetzt werden.
gruss frank
Der Error muss im CHAT_CLIENT gesetzt werden.
Code: Alles auswählen
def get_message(self):
try:
message, (client_ip, client_port) = self.s.recvfrom(self.BUFSIZE)
except socket.error:
message = ""
client_ip = ""
return message, client_ip