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

Hey,
I have a question about using sockets. Ok, I was wondering on how i can keep the socket i am using open. ie: When i connect to a server, then send data, i get the data. But i still need to have that socket open so i can keep on sending/receiving data. But my script will connect to the server, send data then receive any data sent back, then it will end the script.

I dont know if i put this into terms that you can understand. But anyhelp will be greatly appreciated (or help on sockets in general).

thanks
^jasper

2002-03-31 Edit by the node bunny : Changed title to be more descriptive and added formatting

  • Comment on Preventing a socket from closing (was: Sockets...)

Replies are listed 'Best First'.
Re: Sockets...
by zjunior (Beadle) on Mar 31, 2002 at 00:25 UTC

    The socket will be always opened unless you (or the other peer) explicity closes it.

    You did not show the problematic code, then I suggest you read the IO::Socket doc to look to some examples to take The Path. Searching throught the Monastery for socket should give you some code to study.

    A little example:

    use strict; use warnings; use IO::Socket::INET; # Create a listening socket at 127.0.0.1, port 5000 my $daemon = IO::Socket::INET->new ( Listen => 3, LocalAddr => '127.0.0.1', LocalPort => '5000', Reuse => 1, Proto => 'tcp' ) || die ">> FATAL: coulnt create tcp server"; my $client; # Done every time $client connects while( $client = $daemon->accept ) { # Send "hello" to client print $client "Hello\n"; # Get a line from client my $response = <$client>; ### do some stuff # Close the connection close($client); }

    This is a server example, but clients arent too diferent from this example. Read the docs and make tries.

Re: Sockets...
by jepri (Parson) on Mar 31, 2002 at 13:00 UTC
    You didn't say which kind of server you are connecting to. If you are connecting to a HTTP server, it may be closing the connection at the end of each request (the correct behaviour).

    ____________________
    Jeremy
    I didn't believe in evil until I dated it.