#!/usr/bin/perl -w
# pong.pl - implements a udp server that prints the clients message and sends back 'PONG'
#
# -Don Mahurin
#
# usage perl pong.pl PORT

$|++;
use strict;
use IO::Socket;

my($port) = @ARGV;
$port = 4242 unless(defined($port));

my $server = IO::Socket::INET->new (LocalPort=>$port,Proto=>"udp")
 or die "Can't create UDP server: $@";
my ($datagram,$flags);


my $count = 0;

while ($server->recv($datagram,42,$flags)) {
 my $ipaddr = $server->peerhost;
 my $port = $server->peerport;
 print "Oooh -- udp from $ipaddr:$port, flags ",$flags || "none",": $datagram\n";
# my $response = IO::Socket::INET->new(Proto=>"udp",PeerHost=>$ipaddr,PeerPort=>$port);
 $server->send("PONG! - $count");
	$count++;
}

