Thread FTP Socket flush
(3 answers)
Opened by rosti at 2025-07-30 07:21
Gemäß Protokoll bin ich an der Stelle, wo das Socket für den Datentransfer offen und dazu bereit ist, Daten auf den FTP-Server zu schreiben:
Quote Also schreibe ich jetzt die Daten in das Socket mit dem Namen $data: Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 my $data = $self->{DATA}; # Socket für den Datentransfer my $len = 0; while( my $x = read($fh, my $buffer, 2048) ){ print "#"; $data->print($buffer); $len += $x; } $data->flush; Auf dem Server jedoch muss ich feststellen, daß da einige Bytes fehlern, also der Buffer nicht komplett geleert wurde. $data->flush funktioniert nur teilweise. Notiere ich $data->getc, wird der Buffer geleert und alle Bytes werden geschrieben, jedoch blockiert dann das Socket. Wie gehts richtig? Bitte mal um Hinweise, MfG PS: Wenn ich mit sleep 1 eine Sekunde warte, kommen alle Daten an, aber das scheint mir unsauber. Last edited: 2025-07-30 07:28:37 +0200 (CEST) |