I. Qu’est‑ce que la programmation Socket
- Sens littéral du terme Socket
Au départ, « socket » désigne une prise électrique. Une prise établit une liaison entre deux extrémités ; c’est pourquoi, en programmation réseau, il correspond à un point d’extrémité pour les communications réseau. - Définition de la programmation Socket
Mise en place d’échanges de données entre plusieurs hôtes à l’aide des protocoles réseau TCP / UDP. - Explication simple
Écrire un programme pour que deux ordinateurs ou plus puissent s’envoyer des données. Un exemple concret : un outil de discussion sur réseau local.
Analogie : prise électrique = interface réseau ; fiche = autre hôte ; brancher la fiche = établir une connexion réseau.
Pour mieux comprendre, nous allons apprendre en mettant en œuvre un exemple pratique.
II. Schéma de conception d’un outil de discussion simplifié
Modèle d’architecture : Client‑Serveur (C/S)
- Serveur (Server)
- Se lier à un port local donné et écouter constamment les demandes de connexion réseau
- Attendre les tentatives de connexion en provenance d’autres ordinateurs
- Établir un canal de communication dès qu’un client se connecte
- Client
Lancer une demande de connexion en indiquant l’adresse IP et le port du serveur - Objectif de la communication : permettre l’échange de messages texte en temps réel entre deux ordinateurs pour une discussion instantanée
Déroulement du fonctionnement
- Lancement du serveur → démarrage de l’écoute sur le port
- Lancement du client → connexion vers l’adresse IP et le port du serveur
- Une fois la connexion établie, les deux parties s’échangent des messages
Voici un exemple minimal
Serveur
// 1. Créer TcpListener pour écouter sur IP et port
TcpListener listener = new TcpListener(IPAddress.Any, 8899);
listener.Start();
// 2. Attendre la connexion du client
TcpClient client = await listener.AcceptTcpClientAsync();
// 3. Récupérer le flux réseau pour lire‑écrire les messages
NetworkStream stream = client.GetStream();
Langage du code : JavaScript (javascript)
Client
// Se connecter à l’IP et au port du serveur
TcpClient client = new TcpClient();
await client.ConnectAsync("192.168.1.100",8899);
NetworkStream stream = client.GetStream();Langage du code : JavaScript (javascript)
Aperçu