Perl
Chilkat2 Perl
Socket Send and Receive BinData
Demonstrates the Chilkat Socket ReceiveBdN and SendBd methods.Chilkat Perl Downloads
use strict;
use warnings;
use Chilkat2;
# This example requires the Chilkat API to have been previously unlocked.
# See Global Unlock Sample for sample code.
my $sock = Chilkat2::Socket->new;
# --------------------------------------------------------------------
# This example uses the public TCP echo service at https://tcpbin.com/
# --------------------------------------------------------------------
my $useTls = 0;
my $port = 4242;
my $maxWaitMs = 5000;
my $success = $sock->Connect('tcpbin.com', $port, $useTls, $maxWaitMs);
if (!$success) {
print $sock->LastErrorText, "\n";
exit;
}
# Wait a max of 2 seconds for a response..
$sock->MaxReadIdleMs(2000);
# Send 26 bytes contained in a Chilkat BinData
my $bdToSend = Chilkat2::BinData->new;
my $i = 0;
my $byteVal = 65;
while ($i < 26) {
$bdToSend->AppendByte($byteVal);
$byteVal = $byteVal + 1;
$i = $i + 1;
}
# Send the contents of the BinData
# Pass zero's in the 2nd and 3rd arguments to send the entire contents of the BinData.
$sock->SendBd($bdToSend, 0, 0);
# The tcpbin.com echo server only echoes after receiving an LF (linefeed char)
$sock->SendByte(10);
# The echo server will echo back whatever is sent to it.
# We should be able to read the same bytes back..
my $bdRecv = Chilkat2::BinData->new;
# Receive the 26 bytes previously sent, plus the LF char.
$success = $sock->ReceiveBdN(27, $bdRecv);
if (!$success) {
print $sock->LastErrorText, "\n";
exit;
}
# Show the contents of bdRecv in hex format
print $bdRecv->GetEncoded('hex'), "\n";
# Output: 4142434445464748494A4B4C4D4E4F505152535455565758595A0A