/ / Delphi Socket Based Client Server

Delphi Socket Based Client Server

Aujourd'hui, le sujet reste très pertinent dans le domaine de latechnologies de l'information dédiées au développement et au déploiement de l'architecture client-serveur. Cela est dû au fait que les systèmes d'information à différentes échelles sont de plus en plus utilisés dans divers domaines. De plus, la structure de toute base de données est créée en fonction de certains paramètres, et de telle manière que travailler avec elle en mode normal n'est possible qu'avec l'utilisation d'applications spéciales. Par conséquent, la mise en œuvre de l'architecture «client-serveur» est une tâche très importante qui se pose aux départements des technologies de l'information dans diverses installations, dont la solution réussie permettra à l'entreprise de fonctionner de manière optimale et en douceur.

Serveur de socket

Serveur de protocole de socketvous permet de traiter simultanément les demandes d'un grand nombre d'utilisateurs. Dans le même temps, l'administrateur peut à tout moment modifier les paramètres afin d'introduire une limite sur le nombre d'utilisateurs servis simultanément. Par défaut, ce paramètre ne contient aucune restriction.

Après avoir connecté le client au serveur, il s'ouvreun canal séparé avec une prise à travers laquelle les données sont échangées. Cependant, le plus optimal et le plus sûr est le déploiement pour chaque nouvelle connexion d'un processus séparé spécial.

L'architecture de l'architecture client-serveur

Examinons plus en détail le schéma de mise en œuvre de l'architecture, en analysant séquentiellement les définitions couramment utilisées:

1. Propriétés de ServerType et Port.Pour que l'utilisateur puisse se connecter au serveur, il est important de s'assurer que le port utilisé par le serveur et le client correspond. L'objectif de ce paramètre est défini dans la propriété Port. Le type de connexion est déterminé par le paramètre ServerType.

2. Le processus d'ouverture d'un socket. Pour démarrer la session client-serveur, il est important d'ouvrir le socket et le port. La propriété Listen est utilisée.

3.Ensuite, les données sont échangées avec l'utilisateur. Lors de l'arrêt, le client se déconnecte. Avec la commande appropriée de l'administrateur système, le serveur s'arrête, interrompant toutes les connexions établies et mettant fin au processus d'attente de nouvelles connexions.

Utilisation de TServerSocket dans les applications client-serveur Delphi

Pour envoyer et recevoir des informations deL'utilisateur utilise les événements OnClientWrite et OnClientRead. Dans le même temps, vous pouvez interagir avec l'utilisateur via un paramètre tel que ClientSocket. Lors du travail, les méthodes et propriétés suivantes sont souvent utilisées:

- le nombre d'utilisateurs actuellement connectés;

- le nombre de processus actifs;

- le nombre de processus libres;

- port, nom d'hôte et adresse IP locale;

- déblocage et blocage d'un socket.

En conclusion, prêtons attention auxla propriété spéciale appliquée est Data. Cette propriété s'applique dans la situation suivante. En règle générale, le serveur est utilisé pour servir un grand nombre d'utilisateurs, ce qui signifie qu'il est nécessaire de stocker des informations sur chaque client, et ces informations doivent être liées à un socket spécifique. Dans de telles situations, l'utilisation de la liaison manuelle est très peu pratique et, par conséquent, la propriété Data est largement utilisée. Cependant, il est important de se rappeler que Data est un pointeur, il est donc important de vérifier si toutes les règles pour travailler avec des pointeurs sont remplies (indication de type, allocation de mémoire, etc.)

Documentation

À ce jour, documentation sur le développementIl existe très peu d'applications client / serveur Delphi liées au développement et à l'utilisation des sockets. Par conséquent, pour une étude détaillée de cet aspect, vous pouvez vous référer à la documentation des systèmes Linux et Unix, car il décrit en détail la technologie de déploiement d'applications utilisant des sockets, cependant, en règle générale, en Perl ou C ++.