#!/usr/local/bin/perl
#
# $Header: /cvsroot/Net::EasyTCP/util/client.pl,v 1.5 2003/02/28 19:50:10 mina Exp $
#
$| = 1;
$hostname = shift || "localhost";
$client = new Net::EasyTCP(
mode => "client",
host => $hostname,
port => 2345,
)
|| die "ERROR CREATING CLIENT: $@\n";
$encryption = $client->encryption() || "NO";
$compression = $client->compression() || "NO";
print "Using $encryption encryption and $compression compression\n\n";
#Send and receive a simple string
print "Sending simple string . . . ";
$string = "HELLO THERE";
$client->send($string) || die "ERROR SENDING: $@\n";
print "receiving . . . ";
$reply = $client->receive() || die "ERROR RECEIVING: $@\n";
if ($reply ne $string) {
print "ERROR: REPLY MISMATCHED SENT . . . ";
}
print "done\n\n";
#Send and receive complex objects/strings/arrays/hashes by reference
print "Sending hashref . . . ";
%hash = ("to be or" => "not to be", "just another" => "perl hacker");
$client->send(\%hash) || die "ERROR SENDING: $@\n";
print "receiving . . . ";
$reply = $client->receive() || die "ERROR RECEIVING: $@\n";
foreach (keys %{$reply}) {
print "Received key: $_ = $reply->{$_}\n";
}
print "done\n\n";
#Send and receive large binary data
print "Sending large binary data . . . ";
for (1 .. 4096) {
for (0 .. 255) {
$largedata .= chr($_);
}
}
$client->send($largedata) || die "ERROR SENDING: $@\n";
print "receiving . . . ";
$reply = $client->receive() || die "ERROR RECEIVING: $@\n";
if ($largedata ne $reply) {
print "WARNING : RECEIVED DATA MISMATCHED MISMATCH . . . ";
}
print "done\n\n";
$client->close();