Peut-être avez-vous été impressionné par les fonctions puissantes et la technologie avancée des logiciels d'application Internet tels que le navigateur IE de Microsoft. Peut-être n'êtes-vous pas encore capable de développer un système aussi complexe à grande échelle, mais ne vous inquiétez pas, cela peut vous donner une chance. pour vous entraîner, c'est apprendre à utiliser Winsocket de Delphi pour écrire des applications basées sur TCP/IP. Nous supposons que vous êtes déjà familier avec les outils de développement Delphi.
Nous pouvons imaginer que si vous écrivez dès le début un programme pour communiquer avec un ordinateur distant, vous devez avoir une connaissance et une maîtrise complètes des protocoles réseau pertinents, une connaissance sous-jacente du système et de la technologie logicielle et matérielle du réseau. cela ne peut être réalisé que dans un court laps de temps. Ce n’est pas une tâche facile pour la plupart des gens.
Heureusement, la bibliothèque de composants réseau de Delphi nous fournit des composants pour implémenter la communication réseau, qui encapsulent les détails complexes de l'implémentation. Les composants ClientSocket et ServerSocket nous permettent d'écrire facilement nos propres programmes de communication réseau et de partage de ressources.
Les étapes d'écriture de programmes Winsocket dans Delphi 4.0 sont les suivantes :
1) Paramètres des propriétés du composant Winsocket ;
2) Établir une connexion avec l'ordinateur distant ;
3) Transmission de données entre ordinateurs ;
Ces trois étapes sont expliquées en détail ci-dessous.
un. Définition des propriétés Winsocket
Dans Delphi 4.0, Winsocket est subdivisé en deux composants : ClientSocket et ServerSocket. Ils servent respectivement de composants côté client et côté serveur. Autrement dit, le composant ClientSocket est utilisé dans le programme client et le composant ServerSocket est utilisé côté serveur. Grâce à la communication entre ces deux composants, couplée à un code d'application auxiliaire, un programme de communication simple peut être implémenté. Bien entendu, si ServerSocket est introduit dans le programme client, celui-ci peut agir comme un serveur et répondre aux requêtes d'autres programmes clients.
Si vous écrivez un programme côté serveur, vous devez définir la propriété Port du composant ServerSocket. La raison pour laquelle ce paramètre est défini est qu'il peut y avoir plusieurs programmes serveur en cours d'exécution sur le même ordinateur et qu'ils peuvent accepter en permanence les demandes de connexion des programmes clients distants. Si vous essayez d'envoyer un e-mail et que le système connecte votre demande à un autre programme serveur, votre e-mail ne sera certainement pas envoyé correctement. Par conséquent, un numéro de port approprié doit être défini pour le composant ServerSocket sur le programme serveur. Vous pouvez également définir l'attribut Service, qui indique le type de service fourni par ServerSocket, tel que : FTP, HTTP, etc. Définissez ensuite la propriété Active sur True.
Si vous écrivez un programme client, il existe davantage de propriétés pour définir le composant ClientServer. L'attribut Port doit être défini pour être cohérent avec la valeur de l'attribut Port côté serveur. En outre, la propriété Host doit être définie correctement. Il s’agit d’une propriété en lecture seule qui n’est pas disponible au moment du design. Il indique le nom d'hôte du serveur distant auquel le programme client souhaite se connecter. Vous pouvez également définir l'attribut Adresse, qui est l'adresse IP de l'hôte distant. Si les deux attributs sont définis, le système utilisera l'attribut Hôte et l'adresse IP définie par l'attribut Adresse deviendra invalide.
deux. Établir une connexion à un ordinateur distant
Pour transférer des données entre des systèmes informatiques distants, une connexion doit d'abord être établie entre les deux hôtes communicants.
Le composant ServerSocket côté serveur appelle la méthode Open pour initialiser la connexion Socket. En même temps, il définit l'attribut Active sur True, définit le composant ServerSocket en mode d'écoute et détecte s'il y a une demande de connexion à tout moment.
Si le serveur accepte la demande de connexion du programme client, l'événement OnAccept est déclenché. Le code suivant correspond à ce que le programme serveur doit faire après avoir accepté la connexion.
PRocédure Myform..ServerSocketAccept (Expéditeur : TObject, Socket : TCustomWinSocket) ;
commencer
IsServer := Vrai ;
fin;
Dans le programme client, le composant ClientSocket définit les propriétés nécessaires telles que Port et Hôte, puis définit la propriété Active sur True pour effectuer une demande de connexion.
trois. Transfert de données entre ordinateurs
Une fois que le serveur accepte la demande de connexion du client, celui-ci peut envoyer des données. À l’heure actuelle, il existe un Socket entre le client et le serveur, et la communication s’effectue via ce Socket. Par conséquent, l'attribut Socket est très important et dispose de nombreuses méthodes. En utilisant quelques méthodes simples, vous pouvez envoyer et recevoir des données.
Le côté client utilise le formulaire suivant : ClientSocket1.socket.sendtext('string you souhaitez envoyer');
Côté serveur, elle prend la forme suivante : ServerSocket1.socket.recievetext(str:string); Cette fonction renvoie la longueur de la chaîne reçue et stocke la chaîne dans la variable str.
Ce qui précède est l'exemple le plus simple de transmission de données. Vous pouvez également utiliser d'autres méthodes fournies par la propriété Socket pour implémenter une transmission de données complexe.
Bien qu'il soit très pratique d'utiliser le composant Winsocket dans Delphi 4.0, si vous souhaitez vraiment maîtriser son utilisation pour développer des applications réseau, vous devez lire attentivement ses fichiers d'aide et ses exemples de programmes. Comparez les avantages de cette méthode en apprentissage continu, maîtrisez ses fonctionnalités de programmation, puis maîtrisez les compétences de programmation des autres composants réseau fournis dans Delphi, tels que : NMPOP3, NMUDP, NMFTP, etc. D'ici là, vous aurez la possibilité de participer au développement de véritables applications réseau, plutôt que de simplement prendre le logiciel d'application réseau d'autres personnes, de le configurer et de l'exploiter habilement.