#!/usr/bin/perl -w # udpmsg - send a message to the udpquotd server use strict; use IO::Socket; my $sock; my $server_host; my $msg; my $port; my $ipaddr; my $hishost; my $MAXLEN; my $PORTNO; my $TIMEOUT; $MAXLEN = 1024; $PORTNO = 5151; $TIMEOUT = 5; $msg = "@ARGV"; $sock = IO::Socket::INET->new(Proto => 'udp', PeerPort => $PORTNO, PeerAddr => '127.0.0.1') or die "Creating socket: $!\n"; $sock->send($msg) or die "send: $!"; #eval { # local $SIG{ALRM} = sub { die "alarm time out" }; alarm $TIMEOUT; $sock->recv($msg, $MAXLEN) or die "recv: $!"; $sock->flush(); # alarm 0; # 1; # return value from eval on normalcy #} or die "recv from $server_host timed out after $TIMEOUT seconds.\n"; ($port, $ipaddr) = sockaddr_in($sock->peername); $hishost = gethostbyaddr($ipaddr, AF_INET); print "Server $hishost responded ``$msg''\n";