use strict; use IO::Socket; my $HOSTNAME = '127.0.0.1'; my $PORTNO = '27501'; my $length = 1024; socket (SOCKET, PF_INET , SOCK_DGRAM, getprotobyname ('udp')) or die "socket: $!"; my $ipaddr=inet_aton($HOSTNAME); my $portaddr = sockaddr_in($PORTNO, $ipaddr) ; my $msg = chr(0xff).chr(0xff)."Z".chr(0xff); send (SOCKET, $msg, 0 , $portaddr) == length ($msg) or die "cannot send to $HOSTNAME($PORTNO): $!"; my $rin = ''; vec($rin, fileno(SOCKET), 1) = 1; my $rout; while (select($rout = $rin, undef, undef, 10.0)) { $portaddr = recv(SOCKET, $msg , $length, 0) or die "recv: $!"; ($PORTNO, $ipaddr) = sockaddr_in ($portaddr); my $host = gethostbyaddr ($ipaddr, AF_INET); print "$host($PORTNO) said $msg$/"; }