======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}}