======Alternatives à OSC======
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
* [[https://gitorious.org/pyosc/devel/source/6aaf78b0c1e89942a9c5b1952266791b7ae16012:OSC.py|OSC.py]]
* [[https://bitbucket.org/arjan/txosc/src|txosc]]
* [[https://github.com/attwad/python-osc|python-OSC]]
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 =====
* [[https://docs.python.org/3.4/library/json.html|python 3.4 json]]
* [[https://docs.python.org/3.4/library/ast.html|python 3.4 ast]]
==== 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 !
===== Encode decode unicode =====
Une chaîne de caractères peut être envoyée simplement en étant encodée.
{{tag>logiciels_de_communication sb}}