![delphi xe10 thread safe queue delphi xe10 thread safe queue](https://lh3.googleusercontent.com/-YwBsWdPI9Fo/V2xpqsCH7eI/AAAAAAAAB9g/XynZQzpTguQAec41kSBcPyZCxseJfDIow/s0/AndroidDebugBuild.png)
Procedure TFServer.IdTCPServerExecute(AContext: TIdContext) Log('SERVER', 'Client Disconnected! Peer=' + PeerIP + ':' + IntToStr(PeerPort)) Procedure TFServer.IdTCPServerDisconnect(AContext: TIdContext) OCCURS ANY TIME A CLIENT IS DISCONNECTED send the Welcome message to Client connectedĪ('Welcome GUEST Client :)') Log('SERVER', 'Client Connected! Peer=' + PeerIP + ':' + IntToStr(PeerPort)) getting IP address and Port of Client that connected and prior to execution in the OnExecute event handler. Use OnConnect to perform actions for the client after it is connected handler signalled when a new client connection is connected to the server.
![delphi xe10 thread safe queue delphi xe10 thread safe queue](https://packt-type-cloud.s3.amazonaws.com/uploads/sites/2445/2018/04/522144d0-129d-4740-98f3-8019fcefbfbe.png)
OnConnect is a TIdServerThreadEvent property that represents the event Procedure TFServer.IdTCPServerConnect(AContext: TIdContext) Procedure TFServer.btn_clearClick(Sender: TObject) send 'good bye' to all clients connectedīroadcastMessage( 'Goodbye my Clients :)') Procedure TFServer.btn_stopClick(Sender: TObject) add a port for connections from guest clients. Bindings is a property of class: TIdSocketHandles Procedure TFServer.btn_startClick(Sender: TObject) Procedure TFServer.FormShow(Sender: TObject) Ĭlients_connected.Caption := IntToStr(0) Procedure TM圜ontext.AddToQueue(p_message: string) Ĭ(tmpList) Inherited Create(AConnection, AYarn, AList) įQueue := TIdThreadSafeStringList.Create HELPER CLASS FOR QUEUING OUTBOUND MESSAGES TO A CLIENTĬonstructor Create(AConnection: TIdTCPConnection AYarn: TIdYarn AList: TIdContextThreadList = nil) override Ĭonstructor TM圜ontext.Create(AConnection: TIdTCPConnection AYarn: TIdYarn AList: TIdContextThreadList = nil) Procedure UpdateClientsConnected(ignoreOne: boolean) Procedure broadcastMessage(p_message : string) Procedure IdTCPServerStatus(ASender: TObject const AStatus: TIdStatus Procedure IdTCPServerExecute(AContext: TIdContext) Procedure IdTCPServerDisconnect(AContext: TIdContext) Procedure IdTCPServerConnect(AContext: TIdContext) Procedure btn_clearClick(Sender: TObject)
![delphi xe10 thread safe queue delphi xe10 thread safe queue](https://delphihaven.files.wordpress.com/2011/05/stqtest.png)
Procedure btn_stopClick(Sender: TObject) Procedure btn_startClick(Sender: TObject) IdBaseComponent, IdCustomTCPServer, IdTCPServer, Vcl.ExtCtrls Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdContext, IdComponent, Vcl.StdCtrls, Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,