1. A propos du cours
- Auteur : Ilyas Bambrik
- Type : Travaux Pratiques – TP 1 intitulé Introduction à la programmation réseau, module Réseaux Avancés, M1 SIC - IA
- Langue : Français
- Licence : Usage pédagogique interne à l’Université de Tlemcen (tous droits réservés)
2. Courte description du cours
Ce TP initie à la programmation réseau en Python à travers l’utilisation des sockets TCP/IP, du multi-threading et l’étude de l’interopérabilité client/serveur entre Python et Java. Il met l’accent sur la compréhension pratique des connexions réseau via la commande netstat.
2. Longue description du cours
Ce document de Travaux Pratiques intitulé TP 1 – Introduction à la programmation réseau fait partie du module Réseaux Avancés destiné aux étudiants de Master 1 en Systèmes d’Information et de Communication. Le cours, rédigé par Ilyas Bambrik, a pour objectif d’introduire la programmation réseau par la mise en œuvre de programmes simples en Python exploitant les sockets et les échanges client-serveur.
Dans la première partie, intitulée Exercice : netstat, l’étudiant découvre comment analyser les connexions réseau sur sa machine en utilisant la commande netstat -n. Il apprend à rediriger les résultats vers un fichier texte (netstat -n > FichierSortie.txt) et à observer les ports ouverts par ses propres programmes serveur et client. Les programmes Serveur.py et Client.py fournis illustrent la création d’un socket TCP en écoute sur 127.0.0.1 (port 9500), l’établissement d’une connexion, l’échange de messages et la fermeture de session via les drapeaux SYN et FIN.
Les étudiants doivent également identifier les processus actifs via netstat -aon et libérer un port occupé grâce à la commande taskkill /PID <pid> /F.
La seconde partie, Exercice : Multi-threading, met en évidence la limite du serveur mono-client. L’objectif est de comprendre comment un serveur multithread peut gérer simultanément plusieurs connexions. Le code présenté (Listing 3) utilise la bibliothèque _thread pour créer un thread distinct à chaque nouvelle connexion. Chaque thread gère indépendamment la communication avec un client sans bloquer les autres. Cette approche illustre les concepts de parallélisme et de concurrence dans les applications réseau.
La troisième partie, Interopérabilité Client / Serveur, démontre qu’un client et un serveur n’ont pas besoin d’être écrits dans le même langage pour communiquer. Le document propose un exemple de client Java se connectant à un serveur Python en utilisant les mêmes principes de socket et de flux de données. Le code Java crée une connexion via la classe Socket, envoie des messages au serveur Python à l’aide de DataOutputStream et lit les réponses via DataInputStream.
L’ensemble du TP favorise une approche progressive : de la simple observation de connexions à la mise en place d’applications réseau robustes et interopérables. L’étudiant est encouragé à exécuter les scripts, observer les états de connexion avec netstat, et comprendre le comportement du système lors de la création et de la terminaison de connexions TCP.
Ce travail pratique constitue une excellente initiation aux principes de la communication réseau, de la programmation concurrente et de la coopération inter-langages. Il prépare les étudiants à aborder des projets plus complexes tels que la conception de serveurs web, de chatrooms ou d’API réseau distribuées.
3. Aperçu du document
Voir ou télécharger le document sur le site d’origine
Ce document est hébergé par une source externe. Nous ne revendiquons aucun droit sur son contenu.
Pour toute demande de retrait, veuillez contacter l’auteur ou l’hébergeur officiel.


