Zeilen aus Socket-Stream rausfischen
Verfasst: Dienstag 28. Januar 2003, 21:23
Hallo,
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:
Das ist jetzt nicht nur furchtbar hässlich, sondern es erscheint mir auch uneffizient.
Ausserdem ist es sehr ungünstig, dass das Verarbeiten der Zeile in der Schleife stattfinden muss.
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.