Thread was ist an der syntax falsch??
(61 answers)
Opened by grey1987 at 2007-11-26 12:25
Bei $max_buf_size == 3 wird NACK nicht komplett gelesen, sondern nur "NAC"...
Das if/elsif/else Konstrukt arbeitet korrekt. Gibt es denn nach dem ACK oder NACK kein Steuerzeichen, dass kennzeichnet, dass diese Übertragung beendet ist? Irgendwie muss doch vom Server deutlich gemacht werden, dass die Status-Meldung beendet ist. Vielleicht hilft das hier als Ansatz weiter: Code (perl): (dl
)
1 2 3 4 5 6 while ( $socket->recv( $char, 1 ) ) { # Abbruch wenn das gelesene ein Whitespace-Zeichen ist: Zeichenklasse [\ \t\r\n\f] # also Leerzeichen, Tab, Umbruch, vert. Tab last if ( $char =~ m/^\s$/ ); $buffer += $char; } Ansonsten müsste man die Server-Doku konsultieren, wie die Statusmeldungen formatiert sind. Oder man schneidet den Netzwerkverkehr mal mit und schaut nach, was in den Paketen drinsteht... meine Beiträge: I.d.R. alle Angaben ohne Gewähr und auf Linux abgestimmt!
Die Sprache heisst Perl, nicht PERL. - Bitte Crossposts als solche kenntlich machen! |