network-multicast-0.1.1: Simple multicast library

Copyright(c) Audrey Tang 2008
LicenseMIT License
Maintaineraudreyt@audreyt.org
Stabilityexperimental
Portabilityportable
Safe HaskellNone
LanguageHaskell98

Network.Multicast

Contents

Description

The Network.Multicast module is for sending UDP datagrams over multicast (class D) addresses.

Synopsis

Simple sending and receiving

multicastSender :: HostName -> PortNumber -> IO (Socket, SockAddr) Source

Calling multicastSender creates a client side UDP socket for sending multicast datagrams to the specified host and port.

Minimal example:

import Network.Socket
import Network.Multicast
main = withSocketsDo $ do
    (sock, addr) <- multicastSender "224.0.0.99" 9999
    let loop = do
        sendTo sock "Hello, world" addr
        loop in loop

multicastReceiver :: HostName -> PortNumber -> IO Socket Source

Calling multicastReceiver creates and binds a UDP socket for listening multicast datagrams on the specified host and port.

Minimal example:

import Network.Socket
import Network.Multicast
main = withSocketsDo $ do
    sock <- multicastReceiver "224.0.0.99" 9999
    let loop = do
        (msg, _, addr) <- recvFrom sock 1024
        print (msg, addr) in loop

Additional Socket operations

addMembership :: Socket -> HostName -> Maybe HostName -> IO () Source

Make the socket listen on multicast datagrams sent by the specified HostName.

dropMembership :: Socket -> HostName -> Maybe HostName -> IO () Source

Stop the socket from listening on multicast datagrams sent by the specified HostName.

setLoopbackMode :: Socket -> LoopbackMode -> IO () Source

Enable or disable the loopback mode on a socket created by multicastSender. Loopback is enabled by default; disabling it may improve performance a little bit.

setTimeToLive :: Socket -> TimeToLive -> IO () Source

Set the Time-to-Live of the multicast.

setInterface :: Socket -> HostName -> IO () Source

Set the outgoing interface address of the multicast.

Socket options