RE: Dateiempfang unbekannter Größe über TCP
Hallo Timo,
diese "$" Zeichen am Ende führt einfach dazu, dass das Suchmuster am Ende des Strings stehen muss. Das ist bei maximal 524288 Bytes und einem Timeout von einer Sekunde hoffentlich immer der Fall?
Ich war auch etwas zu schnell an der Tastatur. Wenn das TCP Read beendet wird, weil ein Timeout aufgetreten ist oder weil die angegebene Anzahl Bytes erreicht wurde und zu allem Übel das letzte Zeichen ein CR ist, dann funktioniert das mit dem CRLF nicht mehr. Da bleibt das LF im Empfangspuffer hängen und auch TCP Read realisiert nicht, dass mit CRLF die Endekennung empfangen wird. Wenn das auftreten kann, dann ist das ein etwas blöder Fall, weil nur wegen dieses eher seltenen Falles das einlesen der Daten nicht mehr so schön funktioniert.
|