use strict ; use warnings ; use IO::Socket::INET ; use Socket ; use IO::Select ; select STDERR ; $|= 1; select STDOUT ; $|= 1; my $rcvtimeo = 3 ; my $IP = 'localhost' ; my $f = 0 ; for my $f (1..6) { my $try = "Fit $f" ; my $socket = new IO::Socket::INET (PeerAddr => $IP, PeerPort => 3575, Proto => 'tcp', ) or die "Couldn't connect to Server $! ($@)\n" ; print STDERR "Opened connection for $try\n" ; sleep(1) ; print STDERR "Sending request: $try\n" ; defined $socket->send($try) or die "send failed: $!" ; my $wait = IO::Select->new() ; $wait->add($socket) ; for my $r (1..2) { if ($wait->can_read($rcvtimeo)) { my $recv_data ; defined $socket->recv($recv_data, 10240) or die "recv $r failed: $!" ; print STDERR "RECEIVED-$r: '$recv_data'\n" ; } else { print STDERR "RECEIVED-$r: timed out\n" ; last ; } ; } ; close $socket ; } ;