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

At the moment I am trying to set up a simple socket program on the server side (I am doing this on a remote server, which makes things a little more difficult). I have been going through the few tutorials that I can find, experimenting with the sockets, and have had limited success in sending and receiving data. The big problem I have had is that once I get the program running, it won't completely stop it seems. A close($sock) seems to close the sockets functions completely, but when I try to run it again on the same port, I get a "IO::Socket::INET: Address already in use..." error. It is becoming very frustrating now... Here's the heart of my code for reference:
my $sock = new IO::Socket::INET ( LocalAddr => 'localhost', LocalPort => 1209, Proto => 'tcp', Listen => 1, Reuse => 1, ); die "$!" unless $sock; my $new_sock = $sock->accept(); close ($sock);
It is being ran on a Unix machine if that makes any difference.

Replies are listed 'Best First'.
Re: Basic Socket Help
by LazerRed (Pilgrim) on Jul 08, 2003 at 01:43 UTC
Re: Basic Socket Help
by Dog and Pony (Priest) on Jul 08, 2003 at 05:18 UTC
    Closing $new_sock as well might make a difference. Also, I've been getting into the habit of doing undef on any socket variables, though I admit to not knowing why I do that - I just see a lot of code doing that after they close the socket. If anybody would like to set me straight on if that does anything useful, and if so why, I'd be glad. :)
    You have moved into a dark place.
    It is pitch black. You are likely to be eaten by a grue.