I'm not sure if this is the right venue in which to ask this question, but if anybody could help me out, I'd really appreciate it. I have a perl script written that I run to accept socket connections. It uses IO::Socket and works fine. See the code below:
my $sock = new IO::Socket::INET (LocalPort => 'port',Proto => 'tcp',Li
+sten => 1,Reuse=>1);
die "Could not create socket: $!\n" unless $sock;
my $new_sock = $sock->accept();
while(<$new_sock>) {
print $_;
}
close($sock);
However, the person sending me information via sockets uses netcat. He sends me the info using the line
cat /tmp/sock | nc ipaddr port
I receive the information fine, but my script does not terminate. It just hangs waiting for more information. I have tried sending socket information using netcat via the cat line above. It seems that netcat doesn't quit. It keeps the socket connection active even after sending the information. My script only stops running when the socket connection dies. So both the sender and receiver are waiting for the connection to die and it never does.
Is there anyway around this either by supplying a command line option to netcat to make it quit after it sends the file or to make my script quit once it receives the information but before the connection dies?
Thanks