[PERL] Net::IO::Socket Problem



  • Hi !

    Ich hab hier ein seltsames Problem mit der Socketklasse von Perl. Unten erstmal der Code
    Also eigentlich nix weltbewegendes. Das kleine Script solle einfach nur auf die gegebene IP zum port 80 verbinden und die Verbindung dann direkt trenner.
    Tuter aber nicht. Der hängt in dem ->new Teil. Fürimmer. Wenn der andere Rechner aber irgendwie antwortet (wenn statt Port 80 der FTP Port 21 genommen wird) gehts ohne Probleme - der druckt die Meldung "socket created aus" und beendet sich dann.

    Wie krieg ich den jetzt dazu auf jeden Fall weiterzumachen, auch wenn der Peer nix antwortet ?

    Danke für Eure Hilfe 🙂 !

    #!/usr/bin/perl
    
    use IO::Socket;
    
    # code taken from http://www.perl.com/language/newdocs/lib/lib/IO/Socket/INET.html 
    $sock = IO::Socket::INET->new(
        PeerAddr => '217.160.135.52' # testweise die ip von c-plusplus.net
        PeerPort => '80', 
        Proto => 'tcp' ,
        ) or die "could not make the connection";
    
    print "socket created\n";
    
    close ($sock);
    


  • Nun gut, dieses Problem wäre gelöst 🙂
    Wens interessiert :

    $sock = IO::Socket::INET->new('217.160.135.52:80');
    

    Naja, so gehts 😕



  • Nächstes Problem 😞
    Ich möchte die Meldung die das Script bekommt gerne ausgeben.
    Mein bisheriger Ansatz war so :

    while ($line=<$sock> )
    {
         print $line;
    }
    

    Naja, ziemlich simpel, geht aber dooferweise nicht. Manchmal bleibt er in einer in dem line=<line=<sock> Teil hängen, manchmal klappts aber auch 🙄

    Wie ist der Richtige Weg um Daten aus einem Socket zu lesen ?

    Nochmal danke 🙂 !


Anmelden zum Antworten