while (1) { if ($server_sock->recv($rcvd_data,1024)) { print "Got a client, address ".$server_sock->peerhost().", port ".$server_sock->peerport().".\n"; my $new_sock=IO::Socket::INET->new(LocalPort=>$new_socknum,LocalAddr=>'localhost',Proto=>'udp',Blocking=>0); $server_sock->send("$new_socknum\n"); print "Sent client their new port of $new_socknum!\n"; threads->create('handleAClient',$new_sock->peeraddr(),$new_socknum); $new_sock->close(); $new_socknum+=1; } }