#!/usr/bin/perl use IO::Socket; $SIG{CHLD} = sub {wait()}; $| = 1; $main_sock = new IO::Socket::INET( LocalHost => '192.168.x.x', LocalPort => 7800, Listen => 5, Proto => 'tcp', Reuse => 1) or die $!; while ($new_sock = $main_sock->accept()) { $pid = fork(); die "Cannot fork: $!" unless defined($pid); if ($pid == 0) { # Child process print $new_sock "Hello there, it's now ", scalar localtime, "\n"; while (defined ($buf = <$new_sock>)) { print "Client said: $buf"; if($buf =~ /^quit/){ close $new_sock; } } exit(0); } }