DELPHI TCPCLIENT ПРИМЕР
Delphi предоставляет мощные возможности для работы с сетью. В частности, мы можем использовать компонент TIdTCPClient из библиотеки Indy для установления соединения с сервером TCP.
Пример простого подключения к серверу TCP и отправки сообщения с использованием компонента TIdTCPClient:
var IdTCPClient1: TIdTCPClient;begin IdTCPClient1 := TIdTCPClient.Create(nil); try IdTCPClient1.Host := '127.0.0.1'; // адрес сервера IdTCPClient1.Port := 8080; // порт сервера IdTCPClient1.Connect; // установление соединения IdTCPClient1.IOHandler.WriteLn('Hello, Server!'); // отправка сообщения IdTCPClient1.Disconnect; // закрытие соединения finally IdTCPClient1.Free; end;
В данном примере мы создаем экземпляр компонента TIdTCPClient, устанавливаем его свойства Host и Port, вызываем метод Connect для установления соединения, отправляем сообщение с помощью метода WriteLn и, наконец, закрываем соединение с помощью метода Disconnect.
Для полноценных клиент-серверных приложений нам также нужно будет реализовать обработку входящих сообщений на стороне клиента и отправку сообщений с сервера. Это можно сделать, например, с помощью обработчиков событий OnConnected, OnDisconnected и OnReceived.
Ниже приведен пример, в котором мы используем все три обработчика событий для обработки входящих сообщений:
var IdTCPClient1: TIdTCPClient;procedure TForm1.IdTCPClient1Connected(Sender: TObject);begin Memo1.Lines.Add('Connected to server');end;procedure TForm1.IdTCPClient1Disconnected(Sender: TObject);begin Memo1.Lines.Add('Disconnected from server');end;procedure TForm1.IdTCPClient1ReceivedData(Sender: TObject; AData: TBytes);begin Memo1.Lines.Add(TEncoding.ASCII.GetString(AData));end;procedure TForm1.Button1Click(Sender: TObject);begin IdTCPClient1 := TIdTCPClient.Create(nil); try IdTCPClient1.Host := '127.0.0.1'; // адрес сервера IdTCPClient1.Port := 8080; // порт сервера IdTCPClient1.Connect; // установление соединения IdTCPClient1.IOHandler.WriteLn('Hello, Server!'); // отправка сообщения Sleep(1000); // ожидание, чтобы дать серверу возможность ответить IdTCPClient1.Disconnect; // закрытие соединения finally IdTCPClient1.Free; end;end;
В данном примере мы создаем экземпляр компонента TIdTCPClient, устанавливаем его свойства Host и Port, вызываем метод Connect для установления соединения, отправляем сообщение с помощью метода WriteLn и ожидаем ответ сервера при помощи метода Sleep. При получении ответа на клиенте срабатывает обработчик события OnReceivedData, который выводит ответ сервера в Memo.
Understanding Modbus Serial and TCP/IP
User Interface Design with Actions - Ray Konopka - Delphicon 2023
TCP client and server in Delphi
[Delphi] TCP/IP Indy Multiple Clients - Server Part 1/2
What is Modbus and How does it Work?
Delphi Boot Camp Day 1 - Introduction to Delphi: The IDE and Your First App
Сетевое взаимодействие. Сокеты. Примеры на Delphi
C# : TCPClient vs Socket in C#
[Delphi] Server, Client Socket TCP/IP
Client server application - Delphi tutorial