Hi,
I'm writing a simple tcp multithread daemon on a Linux i386 system.
For this moment the script is very short. I would like have 3 distinct
threads that answer to the clients. Every thread answers and exits
(with 'exit' client command) separately. At this moment when a thread
quit, kill all threads.
Thank you very much and regards
#!/usr/bin/perl -w
use strict;
use IO::Socket;
use threads;
$|=1;
my $socket = IO::Socket::INET->new (
Proto => 'tcp',
LocalPort => 12345,
Listen => SOMAXCONN,
Timeout => 60,
ReuseAddr => 1
) or die "Error: can't create listening socket : $!\n";
my $thr1 = threads->new(\&server,$socket);
my $thr2 = threads->new(\&server,$socket);
my $thr3 = threads->new(\&server,$socket);
$thr1->join;
$thr2->join;
$thr3->join;
exit(0);
sub server {
my $socket = shift;
my $tid = threads->tid();
print "tid : $tid\n\n";
while (my $connection = $socket->accept()){
while (my $buf = <$connection>){
chomp $buf;
print "buf $buf\n";
if ($buf =~ /exit/i){
print "exit!\n";
close $socket;
exit(0);
}
}
}
close $socket;
exit(0);
}