#!perl
use IO::Socket::INET;
use threads;
$server = IO::Socket::INET->new(
LocalPort => 90,
Type => SOCK_STREAM,
Reus => 1,
Listen => 10) or die "Server Failed.\n";
$thread_A = threads->new(\&server);
$thread_B = threads->new(\&server);
$thread_C = threads->new(\&server);
@result = ($thread_A->join, $thread_B->join, $thread_C->join);
print "All threads returned, with codes @result\n";
sub server {
while ($client=$server->accept) {
for ($second=60; $second>0; --$second) {
sleep 1;
print $client "$second\n";
}
close $client;
}
print "Thread: loop while(\$client=\$server->accept) was broken with reason \"unknown\", going to return.\n";
return 1;
}
####
#!perl
use IO::Socket::INET;
$server = IO::Socket::INET->new("127.0.0.1:90");
while (<$server>) {
print;
}
close $server;
####
#!perl
use IO::Socket::INET;
use threads;
$SIG{PIPE} = 'IGNORE";
$server = IO::Socket::INET->new(
LocalPort => 90,
Type => SOCK_STREAM,
Reus => 1,
Listen => 10) or die "Server Failed.\n";
$thread_A = threads->new(\&server);
$thread_B = threads->new(\&server);
$thread_C = threads->new(\&server);
@result = ($thread_A->join, $thread_B->join, $thread_C->join);
print "All threads returned, with codes @result\n";
sub server {
while ($client=$server->accept) {
for ($second=60; $second; --$second) {
sleep 1;
print $client "$second\n" or last;
}
close $client;
}
print "Thread: loop while(\$client=\$server->accept) was broken with reason \"unknown\", going to return.\n";
return 1;
}