=============================== Asynchronous multicast UDP =============================== .. contents:: :local: :depth: 2 :backlinks: top Basic Architecture =================== .. automodule:: multicast Multicasting ============= Simple multicast ----------------- The simplest way to send a packet to a multicast group is by using the :func:`multicast.sendto` function. .. autofunction:: multicast.sendto Multicasters ------------- .. autoclass:: multicast.Multicaster :members: Multicast listeners ==================== Simple multicast monitoring ---------------------------- .. autofunction:: listen Multicast listener ------------------- .. autoclass:: multicast.MulticastListener :members: Example of multicast listener ------------------------------ Listen for a single request and quit:: >>> from datetime import datetime >>> from multicast import sendto, poll, MulticastListener >>> class Printer(MulticastListener): ... filter = lambda packet, addr: True ... def handle_packet(self, packet, addr): ... print packet ... return True # Stop listening ... >>> Printer() >>> sendto('test') >>> poll() 'testa' Epoll object polling ===================== Simple polling --------------- The `multicast` module provides four convenience functions that mirror the methods on :class:`Poller` instances. These functions operate on the default :class:`Poller` instance and provide a simple way to control polling. .. note:: References to `self` in this section refer to the default :class:`Poller`. .. autofunction:: multicast.register .. autofunction:: multicast.unregister .. autofunction:: multicast.poll .. autofunction:: multicast.loop Poller objects --------------- For more fine-grained control, or for implementing multiple polling loops, multiple instances of the :class:`Poller` class can be created. .. autoclass:: multicast.Poller :members: