Sample code for 30+ languages & platforms
Dart

Socket Send and Receive BinData

Demonstrates the Chilkat Socket ReceiveBdN and SendBd methods.

Chilkat Dart Downloads

Dart
import 'package:chilkat/chilkat.dart';

void main() {
  // This example requires the Chilkat API to have been previously unlocked.
  // See Global Unlock Sample for sample code.

  final sock = CkSocket();

  // --------------------------------------------------------------------
  // This example uses the public TCP echo service at https://tcpbin.com/
  // --------------------------------------------------------------------

  final useTls = false;
  final port = 4242;
  final maxWaitMs = 5000;
  try {
    sock.connect('tcpbin.com', port, useTls, maxWaitMs);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Wait a max of 2 seconds for a response..
  sock.maxReadIdleMs = 2000;

  // Send 26 bytes contained in a Chilkat BinData
  final bdToSend = CkBinData();
  var i = 0;
  var byteVal = 65;
  while (i < 26) {
    bdToSend.appendByte(byteVal);
    byteVal++;
    i++;
  }

  // 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..
  final bdRecv = CkBinData();
  // Receive the 26 bytes previously sent, plus the LF char.
  try {
    sock.receiveBdN(27, bdRecv);
  } on ChilkatException catch (e) {
    print(e.lastErrorText);
    return;
  }

  // Show the contents of bdRecv in hex format
  print(bdRecv.getEncoded('hex'));

  // Output:  4142434445464748494A4B4C4D4E4F505152535455565758595A0A
}