Programmation réseau en C#22/07/2004
Par
LEBRUN Thomas (Autres Articles)
Cet article vous expliquera comment utiliser le C# (csharp) pour vous initier à la programmation réseau. 0. Avant-propos 1. Introduction 1.a. Les Sockets 1.b. Le Framework .NET 2. La classe Socket 2.1. Création d'une socket 2.2. Connexion/Ecoute 2.3. Transmission des données 2.3.1. Envoi de données 2.3.2. Réception de données 2.4. Fermeture de la socket 3. Les classes réseau du Framework .NET 3.1. La classe TcpClient 3.2. La classe UdpClient 3.3. La classe TcpListener 4. Conclusion 5. Téléchargement
Réaliser une application client serveur devient chose commune et souvent recherchée. La programmation réseau qu'elle implique est bien souvent compliquée, dans les autres langages, pour des développeurs débutants. Heureusement, le Framework .Net de Microsoft permet une mise en uvre simple et efficace.
La programmation réseau repose sur les sockets. Les sockets sont un mode de communication standard sur réseau, mis au point à Berkeley, qui permettent à une application, de dialoguer avec un protocole. Cela peut être fait sur une même machine, ou bien sur une machine distante, au travers d'un réseau. Il existe 2 modes de communications pour les sockets :
Le Framework .Net dispose de nombreuses classes destinées à faciliter la programmation réseau. L'ensemble de ces classes est intégré dans les espaces de nom System.Net et System.Net.Sockets. Ces classes constituent le minimum à utiliser pour le développement d'une application réseau.
La classe Socket du Framework .Net est la base de la programmation réseau.
Pour créer une socket, vous devez l'instancier, au moyen de son constructeur (les paramètres du constructeur sont des énumérations, dépendantes les unes des autres) :
Exemple de création d'une socket :
La connexion à une socket se fait via la méthode Connect de l'objet Socket. Cette méthode prend en paramètre un IpEndPoint, qui permet de spécifier sur quelle IP et sur quel port notre socket doit se connecter. Exemple :
Il est également possible de créer une socket d'écoute, au moyen de la méthode Listen. Celle-ci prend en paramètre la taille de la liste d'attente (backlog).
Nous allons voir ici comment envoyer et recevoir des données.
Pour envoyer des données, vous devez utiliser la méthode Send, qui comprend plusieurs surcharges :
Exemple :
La réception de données, quand à elle, se fait au moyen simple de la méthode Receive. Tout comme la méthode Send, elle dispose de plusieurs surcharges :
Les arguments de la méthode Receive sont identiques à ceux de la méthode Send. Vous pouvez à tout moment contrôler l'état de la socket, au moyen de la propriété Connected.
Pour fermer une socket, vous devez, au préalable, terminer les opérations d'envois et de réceptions sur la socket. Ensuite, appeler la méthode ShutDown, prenant en paramètre un SocketShutDown.
Le Framework .Net contient des classes, toutes dérivées de la classe Socket, qui ont été créées dans le but de simplifier les étapes.
La classe TcpClient permet d'accéder aux services du protocole TCP. Il est possible, via cette classe, de se connecter à une socket en écoute, et d'envoyer et recevoir des données de celui-ci. Pour utiliser cette classe, vous devez :
La classe UdpClient permet d'accéder aux services du protocole UDP. Cette classe permet d'envoyer et de recevoir des données. Utilisation de la classe :
Cette classe est utilisée pour écouter sur des ports TCP. Utilisation de la classe :
Cette liste vous montre les principales méthodes de ces classes : bien sûr, il en existe d'autres, ainsi que des propriétés utiles, que je vous laisse découvrir.
Pour conclure, nous pouvons affirmer que réaliser un logiciel client serveur ne s'avère pas aussi difficile qu'il peut paraître à première vue : en effet, le Framework .Net fournit toutes les classes dont nous avons besoin. Il ne vous reste plus maintenant qu'à appliquer tout ce que vous venez de voir. |
Copyright © 2004 LEBRUN Thomas. Aucune reproduction, même partielle, ne peut être faite de ce site et de l'ensemble de son contenu : textes, documents, images, etc sans l'autorisation expresse de l'auteur. Sinon vous encourez selon la loi jusqu'à 3 ans de prison et jusqu'à 300 000 E de dommages et intérêts. Cette page est déposée à la SACD.