Gast: Hilfe bei TCP Server/Client

Beitrag lesen

Hallo,

Nun sollen aber irgendwas in die 500 ZEILEN Text eingegeben werden können und fehlerfrei zwischen Client - Server -> Server - Client übertragen werden und danach sollte man theoretisch wieder 500 ZEILEN Text eingeben können, <STDIN> wirkt in diesem Fall aber blockierend.
Die Frage ist: Woran erkennst du das Ende der Eingabe? Zeilenumbruch? Doppelter Zeilenumbruch? ... Dementsprechend musst du die recv()-Funktion und die Konstrukte drumherum gestalten.

Die nächste Frage ist: Woran erkennt der Server das Ende des Datenstroms? Socket zu? Header-Daten? Feste Länge der Daten? Per Kommandozeilenargument?

Grüße

Ehrlich gesagt weiss ich das auch noch garnicht genau. Der Laboringenieur hat wohl irgendne Datei die eingelesen wird. Und das sind wohl jede Menge Zeichen. Hatte mir auch schon Gedanken deswegen gemacht, sonst könnte ich ja auch nach nem bestimmten Zeichen suchen lassen und ab dem Zeichen soll das einlesen dann aufhören.

Momentan stehe ich noch bei dem Problem das bei <STDIN> ( ich hab jetzt einfach mal einen Text aus dem Internet kopiert der Zeilenumbrüche enthält) bei diesen besagten Zeilen umbrüchen immer abgeschnitten wird. Das sollte ja eigentlich der chomp() Befehl beheben können, aber so richtig funktioniert das leider noch nicht.

Hier ist nochmal ein Teil der Aufgabenstellung.

1.    Client and server will be started on different machines. So, when you start your script you have to give to it parameters (ip adress and port). I suggest you give parameters as arguments. In this case a command for starting of your script will looks like in example

./tcpCl.pl --ip=192.168.1.29 --port=8888

It is just example, and you can give arguments in the way you like.

2.    You have to use module "strict". It is a good way how to avoid mistakes.

3.    Your scripts  have to work with large data. It just means, you can submit on the input of a client 500 lines of text, and all the data must be displayed on the server side, and all the data will received back on the client side.