#!/usr/bin/perl -w use IO::Socket; use IO::Select; my $s=new IO::Select; chop($hostname = `hostname`); (undef,undef,undef,undef,$myaddr) = gethostbyname($hostname); @my_ip = unpack("C4", $myaddr); $my_ip_addr = join(".", @my_ip); print "$my_ip_addr $hostname\n"; my $ip1=IO::Socket::INET->new(LocalPort => 7777, Proto=>'udp', LocalAddr => $my_ip_addr) or die "error creating UDP listener for $my_ip_addr $@\n"; $s->add($ip1); while(1){ my $server; foreach $server($s->can_read(60)){ my $newmsg; $server->recv($newmsg,1024); my ($rport,$ripaddr) = sockaddr_in($server->peername); print "FROM : ".inet_ntoa($ripaddr)."($rport) "; print "$newmsg"; my ($lport,$lipaddr) = sockaddr_in($server->sockname); } }