[Pdx-pm] (no subject)
Fabio45K at netscape.net
Fabio45K at netscape.net
Tue Mar 11 20:49:14 CST 2003
maybe you guys can help with this, here is some code i wrote for a server that i want to multithread, but i also want each client to be able to communicate. so i thought that sharing the $client variable would make it global to all threads and be able to have communication between threads, here is the code.
#!/usr/bin/perl
use strict;
use threads; #using threads instead of fork!
use threads::shared;
use IO::Socket::INET;
$| ++;
#making the socket and server
my $listener = IO::Socket::INET->new
(
LocalPort => 1337,
Listen => 5,
Reuse => 1
) || die "Cannot create socket\n";
warn "server up and ready for connections...... \n";
my $client : shared;
my $client_num : shared;
my $client_num = 0;
lock $client;
#create the threads
while (1)
{
my $client = $listener->accept;
threads->create(\&start_thread, $client, ++ $client_num);
}
sub start_thread
{
my @grab;
my ($client, $client_num) = @_;
print "thread created for client $client_num\n";
push @grab, $client;
print @grab;
print $client "Welcome to the Kamran's Test server! \n";
&begin;
return;
}
sub begin
{
while(my $line = <$client>){
print $line;
print $client $line;
}
}
__________________________________________________________________
Try AOL and get 1045 hours FREE for 45 days!
http://free.aol.com/tryaolfree/index.adp?375380
Get AOL Instant Messenger 5.1 for FREE! Download Now!
http://aim.aol.com/aimnew/Aim/register.adp?promos=380455
More information about the Pdx-pm-list
mailing list