sub UDPing { $remote = IO::Socket::INET->new( Proto => "$type", PeerAddr => "$server", PeerPort => "$port" ) or die "Couldn't connect $type Socket:\n$!"; $peeraddr = join "." => unpack "C*" => $remote->peeraddr(); $select = IO::Select->new($remote); while ($count <= $magic) { $start = Time::HiRes::time; if ($count < 2) { print("${type}ing $server ($peeraddr):\n"); } $remote->send('PING'); if ($select->can_read(3)) { $rtt = 1000 * (Time::HiRes::time - $start); $r = $remote->recv($data, 0); printf("$peeraddr: ${type}_no=$count time=%.3f ms\n", $rtt); UpdateStats($rtt); } else { print ("Request Timed Out.\n"); UpdateStats(); } $count++; } }