#!/usr/bin/perl -w use Net::SSLeay; use Socket; use IO::Socket; use IO::Socket::INET; use IO::Socket::SSL qw(debug4); use English; use POSIX ":sys_wait_h"; use strict; sub REAPER { my $child; while (($child = waitpid(-1, WNOHANG)) > 0) { } $SIG{CHLD} = \&REAPER; $ERRNO = 0; } $SIG{CHLD} = \&REAPER; my $server = new IO::Socket::INET( LocalPort => '2345', Proto => 'tcp', Listen => SOMAXCONN, Reuse => 1, ); die "Could not create socket: $ERRNO \n" unless $server; for ( ; ; ) { my $client = $server->accept(); die "Could not accept Client: $ERRNO \n" unless $client; my $kidpid = fork(); die('Can\'t fork: ' . $ERRNO) unless defined($kidpid); if (!$kidpid) { $client->autoflush(1); # stuff $client->close(); exit(0); } else { $client->close(); } }