Delphi ActiveX
Delphi ActiveX
TCP Socket Send Byte and Receive Byte
Demonstrates the Chilkat Socket ReceiveByte and SendByte method.Chilkat Delphi ActiveX Downloads
uses
Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
Vcl.Controls, Vcl.Forms, Vcl.Dialogs, Vcl.StdCtrls, Chilkat_TLB;
...
procedure TForm1.Button1Click(Sender: TObject);
var
success: Integer;
sock: TChilkatSocket;
useTls: Integer;
port: Integer;
maxWaitMs: Integer;
treatAsUnsignedInt: Integer;
begin
success := 0;
// This example requires the Chilkat API to have been previously unlocked.
// See Global Unlock Sample for sample code.
sock := TChilkatSocket.Create(Self);
// --------------------------------------------------------------------
// This example uses the public TCP echo service at https://tcpbin.com/
// --------------------------------------------------------------------
useTls := 0;
port := 4242;
maxWaitMs := 5000;
success := sock.Connect('tcpbin.com',port,useTls,maxWaitMs);
if (success = 0) then
begin
Memo1.Lines.Add(sock.LastErrorText);
Exit;
end;
// Wait a max of 2 seconds for a response..
sock.MaxReadIdleMs := 2000;
// Send a byte.
sock.SendByte(96);
// 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 byte back..
// After successfully reading, the byte value is available in the ReceivedInt property.
treatAsUnsignedInt := 1;
success := sock.ReceiveByte(treatAsUnsignedInt);
if (success = 0) then
begin
Memo1.Lines.Add(sock.LastErrorText);
Exit;
end;
// Let's look at the value of the byte received. It should be 96.
Memo1.Lines.Add(IntToStr(sock.ReceivedInt));
// The echo server also echoed the LF back.
success := sock.ReceiveByte(treatAsUnsignedInt);
// Assuming success..
// Should be decimal 10.
Memo1.Lines.Add(IntToStr(sock.ReceivedInt));
end;