Skip to content

Making it easy for teachers to use simple networking in Python

License

Notifications You must be signed in to change notification settings

tjguk/networkzero

Repository files navigation

NetworkZero

https://travis-ci.org/tjguk/networkzero.svg?branch=master

Make it easy for learning groups to use simple networking in Python

API

address below refers to an IP:Port string eg "192.0.2.5:4567"

Discovery

  • address = advertise(name, address=None)
  • address = discover(name, wait_for_s=FOREVER)
  • [(name, address), ...] = discover_all()
  • [(name, address), ...] = discover_group(group_name, separator="/")

Messaging

  • reply = send_message_to(address, message, wait_for_reply_s=FOREVER)
  • message = wait_for_message_from(address, [wait_for_s=FOREVER])
  • send_reply_to(address, reply)
  • send_news_to(address, news)
  • wait_for_news_from(address[, pattern=EVERYTHING][, wait_for_s=FOREVER])

Typical Usage

On computer (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, %s" % name)

On computer (or process) B and C and D...:

import networkzero as nw0

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

About

Making it easy for teachers to use simple networking in Python

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published