mrjerk: Hilfe bei TCP Server/Client

Beitrag lesen

Hallo,

Und das Problem bei <STDIN> ist ja das nur 1024 oder evtl. auch 2048 Zeichen möglich sind, alles was darüber hinaus geht wird abgeschnitten und nicht zum Server gesendet, so meine Erfahrungen.

Nope. <STDIN> liest, wenn die Eingabe nicht abgebrochen wird, bis zum Sankt-Nimmerleins-Tag oder bis der Speicher voll ist (meist tritt letzteres zuerst ein :) ).

Das Abschneiden bei 1024 Zeichen liegt am Aufruf Deiner recv-Methode (sowohl im Server als auch im Client):

$client_socket->recv($data,1024);
print "Received from Client : $data\n";
#print $client_socket "$data\n";
$client_socket->send($data);

"Lies 1024 Zeichen und sende diese zum Server."
Mehr macht das Ding dann nicht.

Da kann natürlich nicht mehr als 1024 bei rumkommen. Du musst das Receive (und zugehörige Send) sooft ausführen, bis da nix mehr kommt. Sozusagen häppchenweise (in 1024 Byte-Blöcken) lesen und gleich wieder rausschreiben.

Viele Grüße,
Jörg