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";