Schreiben Sie netzwerkfähige Anwendungen mit Delphi

Von allen Komponenten, die Delphi zur Unterstützung von Anwendungen bereitstellt, die Daten über ein Netzwerk (Internet, Intranet und lokal) austauschen, sind zwei die am häufigsten verwendeten TServerSocket und TClientSocket, Beide unterstützen Lese- und Schreibfunktionen über eine TCP / IP-Verbindung.

Winsock- und Delphi-Socket-Komponenten

Windows Sockets (Winsock) bietet eine offene Schnittstelle für die Netzwerkprogrammierung unter dem Windows-Betriebssystem. Es bietet eine Reihe von Funktionen, Datenstrukturen und zugehörigen Parametern, die für den Zugriff auf die Netzwerkdienste von Protokollstapeln erforderlich sind. Winsock fungiert als Verbindung zwischen Netzwerkanwendungen und zugrunde liegenden Protokollstapeln.

Delphi-Socket-Komponenten (Wrapper für den Winsock) optimieren die Erstellung von Anwendungen, die über TCP / IP und verwandte Protokolle mit anderen Systemen kommunizieren. Mit Sockets können Sie Verbindungen zu anderen Computern lesen und überschreiben, ohne sich um die Details der zugrunde liegenden Netzwerksoftware kümmern zu müssen.

Die Internet-Palette auf der Delphi-Komponenten-Symbolleiste hostet die TServerSocket und TClientSocket Komponenten sowie TcpClient, TcpServer, und TUdpSocket.

Um eine Socket-Verbindung mit einer Socket-Komponente zu starten, müssen Sie einen Host und einen Port angeben. Allgemein, Wirt Gibt einen Alias ​​für die IP-Adresse des Serversystems an. Hafen Gibt die ID-Nummer an, die die Server-Socket-Verbindung identifiziert.

Ein einfaches Einwegprogramm zum Senden von Text

Um ein einfaches Beispiel mit den von Delphi bereitgestellten Socket-Komponenten zu erstellen, erstellen Sie zwei Formulare - eines für den Server und eines für den Client-Computer. Die Idee ist, dass die Clients einige Textdaten an den Server senden können.

Öffnen Sie Delphi zunächst zweimal und erstellen Sie ein Projekt für die Serveranwendung und eines für den Client.

Serverseite:

Fügen Sie in einem Formular eine TServerSocket-Komponente und eine TMemo-Komponente ein. Fügen Sie im OnCreate-Ereignis für das Formular den folgenden Code hinzu:

Verfahren TForm1.FormCreate (Absender: TObject);
Start
ServerSocket1.Port: = 23;
ServerSocket1.Active: = True;
Ende;

Das OnClose-Ereignis sollte enthalten:

Verfahren TForm1.FormClose
(Absender: TObject; var Aktion: TCloseAction);
Start
ServerSocket1.Active: = false;
Ende;

Client-Seite:

Fügen Sie für die Clientanwendung einem Formular eine TClientSocket-, TEdit- und TButton-Komponente hinzu. Fügen Sie den folgenden Code für den Client ein:

Verfahren TForm1.FormCreate (Absender: TObject);
Start
ClientSocket1.Port: = 23;
// lokale TCP / IP-Adresse des Servers
ClientSocket1.Host: = '192.168.167.12';
ClientSocket1.Active: = true;
Ende;
Verfahren TForm1.FormClose (Absender: TObject; var Aktion: TCloseAction);
Start
ClientSocket1.Active: = false;
Ende;
Verfahren TForm1.Button1Click (Absender: TObject);
beginif ClientSocket1.Active dann
ClientSocket1.Socket.SendText (Edit1.Text);
Ende;

Der Code beschreibt sich selbst ziemlich genau: Wenn ein Client auf eine Schaltfläche klickt, wird der in der Edit1-Komponente angegebene Text mit dem angegebenen Port und der angegebenen Hostadresse an den Server gesendet.