(Patrick LeBoutillier) wrote in
news: om:
> Hi all,
>
> I'm trying to perform read and write I/O on a socket file descriptor
> received for another process via a Unix Domain Socket. In trying to
> understand all this I came up with a small test script that is not
> working for me:
I am no expert so please take what I say with a grain of salt.
> use strict ;
> use IO::Socket::INET ;
>
> my $socket = new IO::Socket::INET(
> PeerAddr => 'www.perl.com',
> PeerPort => 80,
> Proto => 'tcp',
> ) ;
>
> my $rfd = fileno($socket) ;
> my $rfh = new IO::Handle->fdopen($rfd, "r") ;
> my $wfd = fileno($socket) ;
> my $wfh = new IO::Handle->fdopen($wfd, "w") ;
$wfh->autoflush(1);
> print "$rfd $rfh $wfd $wfh\n" ;
> print $wfh "GET / HTTP/1.0\n\n" ;
> print "Sent GET...\n" ;
> my $line = <$rfh> ;
> print $line ;
Also, I am not sure why you are creating $rfh and $wfh. $socket can be read
from and written to using regular Perl syntax:
#! C:/Perl/bin/perl.exe
use strict;
use warnings;
use IO::Socket::INET;
my $socket = new IO::Socket::INET(
PeerAddr => 'www.perl.com',
PeerPort => 80,
Proto => 'tcp');
die "Cannot open connection: $!\n" unless $socket;
print $socket "GET / HTTP/1.0\n\n";
print "Sent GET...\n";
my $line = <$socket>;
close $socket;
print $line, "\n";
__END__
Sinan.
--
A. Sinan Unur
Remove dashes for address
Spam bait: private.php?do=newpm&u=