> http-протокол разрывает соединение сразу после обмена данными
keep-alive
> просто те самые 20 строчек кода, для начала.

Код:
#!/usr/bin/perl -Tw
use Socket;
my $EOL = "\015\012";
sub logmsg { print "$0 $$: @_ at ", scalar localtime, "\n" }
my $port = shift || 2345;
my $proto = getprotobyname('tcp');
($port) = $port =~ /^(\d+)$/ or die "invalid port";
socket(Server, PF_INET, SOCK_STREAM, $proto) || die "socket: $!";
bind(Server, sockaddr_in($port, INADDR_ANY)) || die "bind: $!";
listen(Server,SOMAXCONN) || die "listen: $!";
my $paddr;
$SIG{CHLD} = \&REAPER;
for ( ; $paddr = accept(Client,Server); close Client) {
my($port,$iaddr) = sockaddr_in($paddr);
my $name = gethostbyaddr($iaddr,AF_INET);
print Client "Hello there, $name, it's now ",
scalar localtime, $EOL;
}
(c) perldoc perlipc
Из примера выкинуто немного, зато в 20 строк уложился.