Pascal (Lazarus/Delphi)
Pascal (Lazarus/Delphi)
Bind and Listen for Incoming Connections
See more Socket/SSL/TLS Examples
Demonstrates Socket.BindAndListen, which binds a TCP listener to a port and places it into listening mode, then accepts an incoming connection.
Background. The backlog argument bounds the queue of pending connections. When
ClientIpAddress is empty, the listener binds to all interfaces. After listening, call AcceptNext to accept connections.Chilkat Pascal (Lazarus/Delphi) Downloads
program ChilkatDemo;
// Demonstrates using the Chilkat Pascal wrapper via the C bridge DLL.
// Builds as a console application under Lazarus (FPC) or Delphi.
{$IFDEF FPC}
{$MODE DELPHI}
{$ENDIF}
{$APPTYPE CONSOLE}
uses
{$IFDEF UNIX}
cthreads,
{$ENDIF}
SysUtils,
CkDllLoader,
Chilkat.Socket;
// ---------------------------------------------------------------------------
procedure RunDemo;
var
success: Boolean;
socket: TSocket;
connectedSock: TSocket;
begin
success := False;
socket := TSocket.Create;
// Bind a TCP listener to a port and place it into listening mode. The 2nd argument is the backlog,
// the maximum number of pending connections allowed to queue.
success := socket.BindAndListen(5000,25);
if (success = False) then
begin
WriteLn(socket.LastErrorText);
Exit;
end;
// After the listener is established, accept the next incoming connection into a new Socket.
connectedSock := TSocket.Create;
success := socket.AcceptNext(20000,connectedSock);
if (success = False) then
begin
WriteLn(socket.LastErrorText);
Exit;
end;
WriteLn('Accepted a connection.');
socket.Free;
connectedSock.Free;
end;
// ---------------------------------------------------------------------------
begin
try
RunDemo;
except
on E: Exception do
WriteLn('Unhandled exception: ', E.ClassName, ': ', E.Message);
end;
WriteLn;
{$IFDEF MSWINDOWS}
WriteLn('Press Enter to exit...');
ReadLn;
{$ENDIF}
end.