Thread was ist an der syntax falsch??
(61 answers)
Opened by grey1987 at 2007-11-26 12:25 grey1987+2007-11-27 09:21:23-- Diese Aussage bezweifel ich. Aber mir wird aus Deinen Beiträgen nicht wirklich klar, wo jetzt letzten Endes Dein Problem liegt. Ein klares Defizit scheint mir im logischen Ablauf vorzuliegen. Aber da ich Dein Problem kaum erkenne und keinen passenden Server zur Hand habe, kann ich momentan auch nichts nachvollziehen. Nur weil Du es mit Perl nicht hinbekommst, heisst das nicht, das Perl das nicht kann. grey1987+2007-11-27 09:21:23-- Wo speichert getlinefromsocket() denn die gelesenen Daten? In $buffer, oder nicht. Was machst Du am Ende mit $buffer? Nichts. Also wird $buffer entsorgt und der Inhalt von $buffer geht verloren (da $buffer innerhalb der Subroutine definiert wurde). Sauberer wäre z.B.: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 sub getlinefromsocket { my $socket = shift; my $buffer, $char; my $max_buf_size = 3; # tu was mit $buffer while ( $socket->recv( $char, 1 ) ) { last if ( $char eq ' ' ); $buffer .= $char; last if ( length $buffer == $max_buf_size ); # wenn mit last die Schleife verlassen wird, wird das print nicht ausgeführt! print $char; } # reiche den gefüllten Buffer weiter return $buffer; } Im restlichen Code kannst Du es dann so benutzen: Code (perl): (dl
)
1 2 3 4 5 my $line = getlinefromsocket( $socket ); if ( $line eq 'ACK' ) { #tu was } 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! |