Différences
Ci-dessous, les différences entre deux révisions de la page.
Les deux révisions précédentes Révision précédente Prochaine révision | Révision précédente Prochaine révisionLes deux révisions suivantes | ||
reseaux:tp:serialisation [2021/12/21 18:31] – [TP - Envoi de données structurée (sérialisation)] phil | reseaux:tp:serialisation [2021/12/21 18:48] – [1.2 Client / Serveur] phil | ||
---|---|---|---|
Ligne 2: | Ligne 2: | ||
===== TP - Envoi de données structurée (sérialisation) ===== | ===== TP - Envoi de données structurée (sérialisation) ===== | ||
+ | |||
+ | |||
[Mise à jour le 20/12/2021] | [Mise à jour le 20/12/2021] | ||
Ligne 10: | Ligne 12: | ||
---- | ---- | ||
- | **Objectif** \\ | + | === Objectif |
Emuler un capteur mesurant des données météorologiques (température, | Emuler un capteur mesurant des données météorologiques (température, | ||
Ligne 16: | Ligne 19: | ||
==== 1. Emulation en Python ==== | ==== 1. Emulation en Python ==== | ||
+ | |||
=== 1.1 Module d’émulation des capteurs === | === 1.1 Module d’émulation des capteurs === | ||
+ | |||
+ | |||
Le module // | Le module // | ||
Ligne 80: | Ligne 86: | ||
</ | </ | ||
+ | {{ : | ||
=== 1.2 Client / Serveur === | === 1.2 Client / Serveur === | ||
* **Serveur** | * **Serveur** | ||
Ligne 94: | Ligne 101: | ||
s = socket.socket(socket.AF_INET, | s = socket.socket(socket.AF_INET, | ||
- | s.bind((' | + | s.bind((' |
while True: | while True: | ||
Ligne 157: | Ligne 164: | ||
s = socket.socket(socket.AF_INET, | s = socket.socket(socket.AF_INET, | ||
- | s.bind((' | + | s.bind((' |
samples = 0 # Numéro de l' | samples = 0 # Numéro de l' | ||
Ligne 204: | Ligne 211: | ||
msg = "{}, {}, {}" | msg = "{}, {}, {}" | ||
- | s.sendto (msg.encode(), | + | s.sendto (msg.encode(), |
time.sleep(10) | time.sleep(10) | ||
</ | </ | ||
Ligne 215: | Ligne 222: | ||
Coder la désérialisation est beaucoup plus complexe que sérialiser. Il faut prendre en compte tous les possiblités de codage d'un nombre. Par exemple, pour la valeur 10 : 10 10.0 +10 1e1, l' | Coder la désérialisation est beaucoup plus complexe que sérialiser. Il faut prendre en compte tous les possiblités de codage d'un nombre. Par exemple, pour la valeur 10 : 10 10.0 +10 1e1, l' | ||
+ | {{ : | ||
=== 1.3 JSON === | === 1.3 JSON === | ||
Le plus simple pour transmettre des données multiples est d’utiliser le codage **JSON**. En Python, le module json offre les outils de **sérialisation** (**dumps**) et de **désérialisation** (**loads**) qui facilitent grandement la programmation. | Le plus simple pour transmettre des données multiples est d’utiliser le codage **JSON**. En Python, le module json offre les outils de **sérialisation** (**dumps**) et de **désérialisation** (**loads**) qui facilitent grandement la programmation. |