The server code is started in hasWhatever.desy.de.
#!/usr/bin/perl -w
use strict;
use IO::Socket;
my $maxlen = 1024;
my $portno = 7777;
my $msg = " " x $maxlen;
my $sock = IO::Socket::INET->new( LocalPort => $portno,
Proto => 'udp') or die "socket: $@";
print "receiving on port $portno\n";
while ($sock->recv($msg, $maxlen)) {
my($port, $ipaddr) = sockaddr_in($sock->peername);
my $remoteHost = gethostbyaddr($ipaddr, AF_INET);
print "received $msg from $remoteHost, $port\n";
$sock->send("CONFIRMED: $msg ");
}
die "recv: $!";
The client code:
#!/usr/bin/perl -w
use IO::Socket;
use strict;
my $maxlen = 1024;
my $port = 7777;
my $tmo = 5;
my $sock = IO::Socket::INET->new(Proto => 'udp',
PeerPort => $port,
PeerAddr => 'hasWhatever.desy.de')
or die "failed to create server: $!\n";
my $msg = 'hello server';
$sock->send($msg) or die "send: $!";
eval {
local $SIG{ALRM} = sub { die "receive failed" };
alarm $tmo;
$sock->recv($msg, $maxlen) or die "recv: $!";
alarm 0;
1; # return value from eval on normalcy
} or die "recv from localhost timed out \n";
print "Server replied $msg\n";