Network Zero

Network Zero

NetworkZero #

Cette brève présentation est une traduction de la page d’accueil de la documentation officielle de la librairie.

Introduction #

NetworkZero facilite l’emploi de Python pour connecter des machines entre elles à travers internet. Il est particulièrement conçu pour un environnement classe ou club d’informatique où des programmes à faible durée de vie doivent se découvrir sur une même machine ou non doivent se découvrir sans connaître les adresses IP ou les noms de domaine.

Il tourne sur Python 2.7 et Python 3.3+ et devrait fonctionner partout où Python tourne. En particulier, il est testé automatiquement sur Windows, Mac et Linux et est utilisé sur les Raspberry Pi.

NetworkZero offre deux services principaux :

  • Découvrerte automatique de programmes,
  • Echanges d’objets Python entre les programmes,

Que peut-il faire ? #

N’importe quoi utilisant une machine ou un processus pour échanger à travers un réseau. Par exemple :

  • Envoyer des commandes à un robet
  • Envoyer des données d’un raspberry avec un capteur à un PC qui dessine et enregristre les données
  • Montrer l’état d’un jeu partagé dans une fenêtre tout en envoyant les commandes d’un autre.

Pouvez-vous montrer un exemple ? #

[Machine or Process A]:

import networkzero as nw0

address = nw0.advertise("hello")
while True:
    name = nw0.wait_for_message_from(address)
    nw0.send_reply_to(address, "Hello " + name)

[Machine or Process B and C and D …]:

import networkzero as nw0

hello = nw0.discover("hello")
reply = nw0.send_message_to(hello, "World!")
print(reply)
reply = nw0.send_message_to(hello, "Tim")
print(reply)

Cela fait tourner un service, rendu public sous le nom “hello” qui va repondre “Hello ” chaque fois que lui est envoyé. Les autres machines ou processus découvrent le service et lui envoient leur noms, recevant un message d’accueuil en retour.

En lire davantage : #