View file File name : connectalot.pl Content :#!/usr/bin/perl use strict; use warnings; use IO::Socket::INET; use IO::Socket::SSL; my $ppid = $$; END { print "[$$] ", $$==$ppid ? "ppid ":"", "exit\n" }; print "[$$] ppid started\n"; $SIG{__WARN__} = sub { print "[$$] $_[0]" }; $SIG{__DIE__} = sub { print "[$$] $_[0]"; exit 0 }; my $class = $ENV{ca_use_ssl} ? "IO::Socket::SSL" : "IO::Socket::INET"; my $port = $ENV{ca_use_ssl} ? 19794 : 19795; my @pids; for( 1 .. 5 ) { if( my $pid = fork ) { push @pids, $pid; } else { print "[$$] start\n"; my $sock = $class->new(PeerAddr=>"localhost:$port", Timeout=>2) or die "couldn't bind: $@"; while( my $line = $sock->getline ) { print "[$$] $line"; } my $eof = ($sock->eof() ? "EOF" : "..."); my $ced = ($sock->connected() ? "CONNECTED" : "..."); my $time = time; print "[$$] time: $time; eof: $eof; ced: $ced\n"; exit 0; } } waitpid( $_, 0 ) for @pids;