Asynchat findet Terminator nicht

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Antworten
quant42
User
Beiträge: 4
Registriert: Mittwoch 14. Juli 2010, 02:55

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:

Code: Alles auswählen

socket.sendall("Data\r\n")
socket.sendall("Data2\r\n")
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
BlackJack

@quant42: Da kann man ohne Quelltext nicht viel zu sagen.
Antworten