Écrire des applications compatibles avec le réseau avec Delphi

De tous les composants fournis par Delphi pour prendre en charge les applications qui échangent des données sur un réseau (Internet, intranet et local), deux des plus courants sont TServerSocket et TClientSocket, tous deux conçus pour prendre en charge les fonctions de lecture et d'écriture sur une connexion TCP / IP.

Composants de socket Winsock et Delphi

Windows Sockets (Winsock) fournit une interface ouverte pour la programmation réseau sous le système d'exploitation Windows. Il offre un ensemble de fonctions, de structures de données et de paramètres connexes nécessaires pour accéder aux services réseau de toutes les piles de protocoles. Winsock agit comme un lien entre les applications réseau et les piles de protocoles sous-jacentes.

Les composants de socket Delphi (wrappers pour le Winsock) rationalisent la création d'applications qui communiquent avec d'autres systèmes à l'aide de TCP / IP et des protocoles associés. Avec les sockets, vous pouvez lire et écrire sur les connexions à d'autres machines sans vous soucier des détails du logiciel de mise en réseau sous-jacent.

La palette Internet de la barre d'outils des composants Delphi héberge le TServerSocket et TClientSocket composants ainsi que TcpClient, TcpServer, et TUdpSocket.

Pour démarrer une connexion socket à l'aide d'un composant socket, vous devez spécifier un hôte et un port. En général, hôte spécifie un alias pour l'adresse IP du système serveur; Port spécifie le numéro d'identification qui identifie la connexion de socket du serveur.

Un programme simple à sens unique pour envoyer du texte

Pour créer un exemple simple à l'aide des composants socket fournis par Delphi, créez deux formulaires: un pour le serveur et un pour l'ordinateur client. L'idée est de permettre aux clients d'envoyer des données textuelles au serveur.

Pour commencer, ouvrez Delphi deux fois, en créant un projet pour l'application serveur et un pour le client.

Du côté serveur:

Sur une fiche, insérez un composant TServerSocket et un composant TMemo. Dans l'événement OnCreate du formulaire, ajoutez le code suivant:

procédure TForm1.FormCreate (expéditeur: TObject);
commencer
ServerSocket1.Port: = 23;
ServerSocket1.Active: = True;
fin;

L'événement OnClose doit contenir:

procédure TForm1.FormClose
(Expéditeur: TObject; var Action: TCloseAction);
commencer
ServerSocket1.Active: = false;
fin;

Côté client:

Pour l'application client, ajoutez un composant TClientSocket, TEdit et TButton à un formulaire. Insérez le code suivant pour le client:

procédure TForm1.FormCreate (expéditeur: TObject);
commencer
ClientSocket1.Port: = 23;
// adresse TCP / IP locale du serveur
ClientSocket1.Host: = '192.168.167.12';
ClientSocket1.Active: = true;
fin;
procédure TForm1.FormClose (expéditeur: TObject; var Action: TCloseAction);
commencer
ClientSocket1.Active: = false;
fin;
procédure TForm1.Button1Click (expéditeur: TObject);
beginif ClientSocket1.Active ensuite
ClientSocket1.Socket.SendText (Edit1.Text);
fin;

Le code se décrit à peu près lui-même: lorsqu'un client clique sur un bouton, le texte spécifié à l'intérieur du composant Edit1 sera envoyé au serveur avec le port et l'adresse d'hôte spécifiés..