da die meisten tcp-Protokolle ja nach dem Schema "befehl\r\n" funktionieren,
ergab sich für mich nun die Problematik, aus dem Socket-Stream eben diese Zeilen zu konstruieren.
Nun hab ich das mal versucht:
Code: Alles auswählen
buffer = ""
while 1:
received = client.recv(1024)
if not received:
break
buffer = buffer + received; # erstmal speichern
while 1: # solange zeilen im Buffer sind
crlf_pos = buffer.find("\r\n")
if crlf_pos == -1:
break
line = buffer[:crlf_pos]
buffer = buffer[crlf_pos+2:] # gelesene Zeile aus Buffer löschen
print "Zeile empfangen:", line
Ausserdem ist es sehr ungünstig, dass das Verarbeiten der Zeile in der Schleife stattfinden muss.