Beefy Boxes and Bandwidth Generously Provided by pair Networks
Think about Loose Coupling
 
PerlMonks  

Low level socket question.

by gabaux (Initiate)
on Jun 25, 2003 at 10:28 UTC ( [id://268800]=perlquestion: print w/replies, xml ) Need Help??

gabaux has asked for the wisdom of the Perl Monks concerning the following question:

High Fellow Monks!

I am to write a perl tool to test an own Apache module. I have some mysterious problems with low-level socket.

socket(SOCK, PF_INET, SOCK_STREAM, $proto) || die "socket: $!"; connect(SOCK, $paddr) || die "connect: $!"; print "Host reached\n-----------------\n" ;

The connections is ok! Next comes the problem:

send SOCK, "$lines\n",MSG_OOB ; $res = recv SOCK, $line,1024,MSG_OOB ; while ( defined($res) ) { print $line ; $res = recv SOCK, $line,1024,MSG_OOB ; } print "Closed\n" ; close SOCK ;

The message is correctly submittet to the Apache server, I could check it from the acces-log and the error-log. (The last shows that our module correctly processed the incoming data.) The socket seems to close down BEFORE Apache could send back the reply....

Any ideas?

Gabaux

Replies are listed 'Best First'.
Re: Low level socket question.
by crouchingpenguin (Priest) on Jun 25, 2003 at 12:05 UTC

    How about just using IO::Socket?

    #!/usr/bin/perl $|++; use strict; use warnings; use IO::Socket; my $host = '0.0.0.0'; my $port = 80; my $socket = IO::Socket::INET->new( PeerHost => $host, PeerPort => $port, Timeout => 5, ) or die "Failed to connect to $host on $port: $!"; $socket->autoflush(1); print "Host reached\n-----------------\n" ; my $lines = 'GET /index.html'; $socket->send($lines . "\n"); while( defined( my $line = $socket->getline() ) ){ print $line; }

    cp
    ----
    "Never be afraid to try something new. Remember, amateurs built the ark. Professionals built the Titanic."
Re: Low level socket question.
by zby (Vicar) on Jun 25, 2003 at 11:01 UTC
    Don't know if this will help but, you could check the $! after the recv call.

Log In?
Username:
Password:

What's my password?
Create A New User
Domain Nodelet?
Node Status?
node history
Node Type: perlquestion [id://268800]
Approved by zby
help
Chatterbox?
and the web crawler heard nothing...

How do I use this?Last hourOther CB clients
Other Users?
Others browsing the Monastery: (4)
As of 2024-03-29 09:19 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    No recent polls found