Sample code for 30+ languages & platforms
Delphi ActiveX

Bind and Listen on a Randomly Selected Unused Port

See more Socket/SSL/TLS Examples

Demonstrates how to bind and listen on a randomly selected unused port.

Note:The ListenPort property used in this example is available starting in Chilkat v9.5.0.59.

Chilkat Delphi ActiveX Downloads

Delphi ActiveX
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;
listenSocket: TChilkatSocket;
listenPort: Integer;

begin
success := 0;

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

listenSocket := TChilkatSocket.Create(Self);

// Pass a value of 0 for the port number to randomly select
// an unused port.
// (The 2nd argument allows for a backlog of 25 pending connection requests when accepting connections.)
success := listenSocket.BindAndListen(5555,25);
if (success <> 1) then
  begin
    Memo1.Lines.Add(listenSocket.LastErrorText);
    Exit;
  end;

// Find out what port was chosen.
// Note: The ListenPort propety was added in Chilkat v9.5.0.59
listenPort := listenSocket.ListenPort;
Memo1.Lines.Add('Chosen listen port = ' + IntToStr(listenPort));
end;