March 2024 - This site, and Kamaelia are being updated. There is significant work needed, and PRs are welcome.

Kamaelia.Internet.Multicast_transceiver

Simple multicast transceiver

A simple component for transmitting and receiving multicast packets.

Remember that multicast is an unreliable connection - packets may be lost, duplicated or reordered.

Example Usage

Send a file to, and receive data from multicast group address 1.2.3.4 port 1000:

Pipeline( RateControlledFileReader("myfile", rate=100000),
          Multicast_transceiver("0.0.0.0", 0, "1.2.3.4", 1000),
        ).activate()

Pipeline( Multicast_transceiver("0.0.0.0", 1000, "1.2.3.4", 0)
          ConsoleEchoer()
        ).activate()

Or:

Pipeline( RateControlledFileReader("myfile", rate=100000),
          Multicast_transceiver("0.0.0.0", 1000, "1.2.3.4", 1000),
          ConsoleEchoer()
        ).activate()

The data emitted by Multicast_transciever (and displayed by ConsoleEchoer) is of the form (source_address, data).

More detail

Data sent to the component's "inbox" inbox is sent to the multicast group.

Data received from the multicast group is emitted as a tuple: (source_addr, data) where data is a string of the received data.

This component ignores anything received on its "control" inbox. It is not yet possible to ask it to shut down. It does not terminate.

Multicast groups do not 'shut down', so this component never emits any signals on its "signal" outbox.

Why a transciever component?

Listens for packets in the given multicast group. Any data received is sent to the receiver's outbox. The logic here is likely to be not quite ideal. When complete though, this will be preferable over the sender and receiver components since it models what multicast really is rather than what people tend to think it is.


Kamaelia.Internet.Multicast_transceiver.Multicast_transceiver

class Multicast_transceiver(Axon.Component.component)

Multicast_transciever(local_addr, local_port, remote_addr, remote_port) -> component that send and receives data to/from a multicast group.

Creates a component that sends data received on its "inbox" inbox to the specified multicast group; and sends to its "outbox" outbox tuples of the form (src_addr, data) containing data received.

Keyword arguments:

  • local_addr -- local address (interface) to send from (string)
  • local_port -- port number
  • remote_addr -- address of multicast group (string)
  • remote_port -- port number

Inboxes

  • control : NOT USED
  • inbox : Data to be sent to the multicast group

Outboxes

  • outbox : Emits (src_addr, data_received)
  • signal : NOT USED

Methods defined here

Warning!

You should be using the inbox/outbox interface, not these methods (except construction). This documentation is designed as a roadmap as to their functionalilty for maintainers and new component developers.

__init__(self, local_addr, local_port, remote_addr, remote_port[, debug])

x.__init__(...) initializes x; see x.__class__.__doc__ for signature

main(self)

Main loop

Feedback

Got a problem with the documentation? Something unclear that could be clearer? Want to help improve it? Constructive criticism is very welcome - especially if you can suggest a better rewording!

Please leave you feedback here in reply to the documentation thread in the Kamaelia blog.

-- Automatic documentation generator, 05 Jun 2009 at 03:01:38 UTC/GMT