procedure TForm1.Button1Click(Sender: TObject);
begin // connecting/disconnecting client
with aClient do
begin
if Connected then
begin
Disconnect;
Exit;
end;
Host := '127.0.0.1';
Connect;
end
end;
procedure TForm1.aServerConnect(AThread: TIdPeerThread);
begin
// event fired by server when client has connected
ServerListBox.Items.Add('Client connected')
end;
procedure TForm1.aServerDisconnect(AThread: TIdPeerThread);
begin
// event fired by server when client has disconnected
ServerListBox.Items.Add('Client disconnected')
end;
procedure TForm1.Button3Click(Sender: TObject);
begin
// if client connected then sending text to server
with aClient do
begin
if (not Connected) then Exit;
WriteLn('Text to server');
end;
end;
procedure TForm1.aServerExecute(AThread: TIdPeerThread);
var
AText : String;
begin
// event fired by server when it recieves text from a client
with AThread do
begin
// reading text rcvd
AText := Connection.ReadLn('', 10);
if (AText <> '')then
begin
// Displaying text rcvd
ServerListBox.Items.Add(AText);
// Sending a response
Connection.WriteLn('Response from server');
end;
end;
end;
procedure TForm1.aClientConnected(Sender: TObject);
begin
// Client has successfully connected
// Trying to readd from connection every N milliseconds
Timer1.Enabled := True;
end;
procedure TForm1.aClientDisconnected(Sender: TObject);
begin
// Client has disconnected, no need to read anymore
Timer1.Enabled := False;
end;
procedure TForm1.Timer1Timer(Sender: TObject);
var
AText : String;
begin
// Client sie timer. trying to read every OnTimer event
with aClient do
begin
AText := ReadLn('', 10);
if (AText <> '')then begin
// text rcvd. Displaying it
ClientListBox.Items.Add('Recieved ' + AText);
end;
end;
end;