sub ListenOnUDP { # Open a port my $hSocket = IO::Socket::INET->new( LocalPort=>$intListenPort, Proto=>$strProtocol ) or die "Can't create UDP socket: $@"; my ($datagram,$flags); while ($hSocket->recv($datagram,42,$flags)) { my $ripaddr = $hSocket->peerhost; my $rport = $hSocket->peerport; my $hResponseSocket = IO::Socket::INET->new( Proto=>$strProtocol, PeerHost=>$ripaddr, PeerPort=>$intSendPort ); $hResponseSocket->send("PONG!"); close($hResponseSocket); last; } close($hSocket); }