TP - Chapitre 6 :
Communiquer en réseauN.B. Niveau : Première Générale, enseignement de spécialité NSI (Numérique et Sciences Informatiques)
Les applications et jeux en réseau se basent sur le modèle clients/serveur.
Au niveau de la programmation, il faut avoir des connaissances en
réseau (module socket)
Un socket permet de connecter deux machines à travers
un réseau.
Dans le cas du réseau Internet, les sockets se servent du protocole IP
(couche réseau) et du protocole TCP pour la couche transport (il existe
aussi le protocole UDP qui est plus simple, plus rapide mais non
fiable).
Appuyer sur les touches Windows + r
puis tapez Powershell, puis ipconfig,Copier et coller le programme ci-dessous dans Edupython ou Thonny,
Script coté serveur
Ici, on communique uniquement en réseau local (chez vous, derrière
votre box, par exemple ou sur les ordinateurs du lycée).
Pour se connecter au serveur, il faut connaître son adresse IP
(10.129.x.y) et le port qu'il utilise.
Python étant multiplateforme, on peut mélanger les systèmes d'exploitation : Windows, Linux, Mac...
Script côté client
Avec ces deux scripts, faire communiquer votre ordinateur avec l'ordinateur de votre voisin.
Faire valider par le professeur
Enregistrer les scripts précédents : client.py sous clientPing.py et serveur.py sous serveurPong.py
Avec ces deux scripts, la communication ne peut se faire que du client vers le serveur.
En comparant les deux scripts, modifiez-les pour permettre au serveur et au client de communiquer à tour de rôle :
Actuellement la communication ne permet pas de transférer des données comme des variables, des listes...
La bibliothèque pickle permet d'encoder les données à transférer dans le bon format.
Reprendre les programmes de l'exercice 6.1. Enregistrer sous clientDico.py et ServeurDico.py
Ajouter dans les deux scripts au moment de l'importation :
On désire transférer des données type dict (dictionnaire) et de l'exploiter sur le serveur.
Coté client on encode les données contenues dans un dictionnaire avant de les transmettre
Coté serveur on décode les données reçues par le client puis on les affiche :
Adapter le code pour transférer le dictionnaire joueur du client vers le serveur.
Faire valider par le professeur
On désire utiliser le même script pour jouer sur les deux ordinateurs.
Télécharger le fichier compressé suivant : SpaceReseau.zip
Décompresser les fichiers dans vos documents.
Le choix se fait par l'appel du menu qui retourne le rôle ('s' pour le
serveur ou 'c' pour le client) : role=menu()
Si le rôle choisi est le serveur, on appelle la fonction connexion qui retournera l'adresse du client
Sinon la fonction retournera l'adresse du serveur.
Implanter le code permettant de connecter le client et serveur dans la fonction connexion(role)
Implanter ce code dans le programme principal en remplaçant les ? par les clés des dictionnaires.
Faire valider par le professeur
Exécuter Wireshark

cliquer sur start
Dans filtre tapez votre adresse ip avec l'instruction suivante

Retrouver les données transmises par le PC dans la trame.
Fond : Texte : Tables : Thème du langage:
Contenu
sous licence CC BY-NC-SA 3.0
Fabrice Sincère
Modifié par Pascal Hassenforder 27/01/2025