develooper Front page | perl.beginners | Postings from January 2002

socket

Thread Next
From:
walter valenti
Date:
January 30, 2002 08:10
Subject:
socket
Message ID:
3C581B22.9080205@yahoo.it
Hola,

qualcuno sa dirmi perchè:

#!/usr/bin/perl

use IO::Socket;
#use diagnostics;
my $host=$ARGV[0];
if(!$host){
    die"...host???\n";
}
$|=1;

$socket=IO::Socket::INET->new(PeerAddr =>$host, PeerPort=>80, 
Proto=>"TCP") || die"$!\n";
print $socket "GET / HTTP/1.0\r\n\r\n";
while(<$socket>){
    print"$_\n";
}
close($socket);


FUNZIONA (scrivi e leggo dal socket),mentre al contrario:

#!/usr/bin/perl

use Socket;
#use diagnostics;
my $host=$ARGV[0];
if(!$host){
    die"...host???\n";
}
$|=1;

socket(SO,PF_INET,SOCK_STREAM,getprotobyname('tcp')) || die"$!\n";

my $dest=sockaddr_in(80,inet_aton($host));
connect(SO,$dest) || die"$!\n";
print SO "GET / HTTP/1.0\r\n\r\n";
while(<SO>){
    print"$_\n";
}

NON FUNZIONA...
ovvero per qualche oscuro motivo la lettura dal socket (<SO>), blocca la 
scrittura sul socket (print SO).
Se invece non cerco di leggere dal socket (cioè non c'è <SO>) la 
scrittura va a buon fine.
(Il tutto controverificato con uno sniffer).



Qualcuna sa dirmi perchè???

    Grazie
   
    Walter


Thread Next


nntp.perl.org: Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at ask@perl.org | Group listing | About