sub handleAClient { my $my_addr=shift; $clients[$#clients+1]=$my_addr; my $my_port=shift; $port_nums[$#port_nums+1]=$my_port; my $udp_data; my $cli_sock=IO::Socket::INET->new(LocalPort=>$my_port,LocalAddr=>'localhost',Proto=>'udp',Blocking=>0) or die "Could not create socket with port $my_port!\n"; while (1) { if($cli_sock->recv($udp_data,1024)) { my $counter=0; foreach my $cli (@clients) { #print "cli val: ".$cli."\n"; #print "Cli pn ".$port_nums[$counter]." my pn ".$local_client->peerport()."\n"; if ($port_nums[$counter]!=$my_port) { my $sock=IO::Socket::INET->new(PeerPort=>$port_nums[$counter],PeerAddr=>$cli,Proto=>'udp',Blocking=>0); $sock->send("<".$my_addr.":".$my_port."> ".$udp_data."\n"); $sock->close(); } $counter+=1; } } } }