coolblue: IO::Socket::INET Abbruch der Nachricht bei Zeilenwechsel

Halli hallo,

ein kleines Problemchen plagt mich.

Ich habe mir eine Client-Server Umgebung programmiert und hole mir wie ein paar Daten von einem Server ab.

Mein Problem ist nun, dass die Nachricht vom Server nur bis zu einem Zeilenwechsel übertragen wird.

Simples Beispiel:

server

print $client "hallo,\nwie geht es dir?\n";

client

$antwort=($socket);
print "$antwort\n";

hallo,

Die Antwort beinhaltet nur das "hallo," bis zum Zeilenwechsel, der Rest wird irgendwie verschluckt. Gibt es eine Möglichkeit, die ganze Nachricht mit Zeilenwechsel zu übertragen oder muss ich ohne Zeilenwechsel arbeiten?

Wäre super wenn mir jemand helfen kann!

Danke im Vorraus.

Gruß,
coolblue

  1. Halihallo coolblue

    Mein Problem ist nun, dass die Nachricht vom Server nur bis zu einem Zeilenwechsel übertragen wird.

    Nicht wirklich. Du liest jedoch nur die erste Zeile aus. Das ist das
    Problem...

    server
    print $client "hallo,\nwie geht es dir?\n";

    client
    $antwort=($socket);
    print "$antwort\n";

    while (<$socket>) {
        print $antwort;
    }

    Die Antwort beinhaltet nur das "hallo," bis zum Zeilenwechsel, der Rest wird irgendwie verschluckt. Gibt es eine Möglichkeit, die ganze Nachricht mit Zeilenwechsel zu übertragen oder muss ich ohne Zeilenwechsel arbeiten?

    Nein, du musst $socket nur wie ein (File-)Handle behandeln, dann
    klappt alles wie es soll.

    Viele Grüsse

    Philipp

    1. hallo

      jo super, hat geklappt!