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:32] – [1. Emulation en Python] phil | reseaux:tp:serialisation [2021/12/21 18:48] – [1.2 Client / Serveur] phil | ||
---|---|---|---|
Ligne 1: | Ligne 1: | ||
[[reseaux: | [[reseaux: | ||
- | ====== 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 11: | 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, | ||
---- | ---- | ||
- | ===== 1. Emulation en Python ===== | + | ==== 1. Emulation en Python ==== |
+ | |||
- | lfkjhshf | ||
+ | === 1.1 Module d’émulation des capteurs === | ||
- | ==== 1.1 Module d’émulation des capteurs ==== | ||
Le module // | Le module // | ||
Ligne 83: | Ligne 86: | ||
</ | </ | ||
+ | {{ : | ||
=== 1.2 Client / Serveur === | === 1.2 Client / Serveur === | ||
* **Serveur** | * **Serveur** | ||
Ligne 97: | Ligne 101: | ||
s = socket.socket(socket.AF_INET, | s = socket.socket(socket.AF_INET, | ||
- | s.bind((' | + | s.bind((' |
while True: | while True: | ||
Ligne 160: | 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 207: | Ligne 211: | ||
msg = "{}, {}, {}" | msg = "{}, {}, {}" | ||
- | s.sendto (msg.encode(), | + | s.sendto (msg.encode(), |
time.sleep(10) | time.sleep(10) | ||
</ | </ | ||
Ligne 218: | 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. |