Alternatives à OSC

De Centre de Ressources Numériques - Labomedia
Révision de 17 janvier 2018 à 14:09 par Serge (discussion | contributions)

(diff) ← Version précédente | Voir la version actuelle (diff) | Version suivante → (diff)
Aller à : navigation, rechercher

OSC définit une norme qui permet facilement de passer des datas en UDP d'un logiciel ou d'un appareil à l'autre. C'est un standard.

Les modules python

ne permettent pas de décoder des chaînes de caractères en UTF-8. Ils fonctionnent tous sur des caractères codés sur 4 octets. Soit Latin-9 ou ISO 8859-1.



JSON

Sérialiser

alldata = {"toto": 3.14, "buggygame": "rien"} # un dictionnaire, une liste
serializeddata = json.dumps(alldata).encode("utf-8")

Envoi

send_socket = Client("127.0.0.1", 8000)
send_socket.send(serializeddata)

Réception

listen_socket = Client("127.0.0.1", 8000)
raw_data, address = listen_socket.listen()

Désérialiser

data = json.loads(raw_data.decode("utf-8"))

Pour récupérer un dictionnaire python conforme

import ast
mon_dict = ast.literal_eval(data.decode("utf-8"))

Attention json ne comprends pas True False

Il faut les convertir en 0 et 1 !

Exemple

Encode decode unicode

Une chaîne de caractères peut être envoyée simplement en étant encodée: il n'est pas nécessaire de la sérialisée.