Asynchat findet Terminator nicht
Verfasst: Freitag 19. Oktober 2012, 00:41
Hallo Leute.
Ich habe eine Anwendung auf der Basis eines Chatservers geschrieben, welcher wiederum auf Asynchat basiert. Die Anwendung funktioniert auch sehr gut, jedoch kommt es zu einem häufigen Fehler beim Senden von Datenblöcken kurz hintereinander. Sei das Trennzeichen "\r\n", dann verursacht im Clientprogramm folgender Code:
bei allen anderen Clients, an die die Daten durch den Server verteilt wird folgende Ausgabe: "DataData2".
Beheben lässt sich das Problem in der Regel durch das Einführen von time.sleep(0.1), welches sicherlich die ungünstigste Lösung ist.
Ist das Problem in dieser Form bekannt oder liegt es auch schlicht an der Verwendet von socket.sendall? Tatsächlich bin ich in Skripten, die sich des Netzwerkes bedienen, noch nicht allzu sehr bewandet. Gibt es Lösungsvorschläge von euch?
Viele Grüße
Ich habe eine Anwendung auf der Basis eines Chatservers geschrieben, welcher wiederum auf Asynchat basiert. Die Anwendung funktioniert auch sehr gut, jedoch kommt es zu einem häufigen Fehler beim Senden von Datenblöcken kurz hintereinander. Sei das Trennzeichen "\r\n", dann verursacht im Clientprogramm folgender Code:
Code: Alles auswählen
socket.sendall("Data\r\n")
socket.sendall("Data2\r\n")
Beheben lässt sich das Problem in der Regel durch das Einführen von time.sleep(0.1), welches sicherlich die ungünstigste Lösung ist.
Ist das Problem in dieser Form bekannt oder liegt es auch schlicht an der Verwendet von socket.sendall? Tatsächlich bin ich in Skripten, die sich des Netzwerkes bedienen, noch nicht allzu sehr bewandet. Gibt es Lösungsvorschläge von euch?
Viele Grüße