//
// Copyright (c) 2013, Brian Frank and Andy Frank
// Licensed under the Academic Free License version 3.0
//
// History:
// 5 Jul 13 Brian Frank Creation
//
**
** MulticastSocket extends UdpSocket to provide multicast capabilities.
**
class MulticastSocket : UdpSocket
{
**
** Make a new unbound multicast UDP socket.
**
new make(SocketConfig config := SocketConfig.cur) : super(config) {}
**
** Default network interface for outgoing datagrams on this socket
**
IpInterface interface
{
get { getInterface }
set { setInterface(it) }
}
private native IpInterface getInterface()
private native Void setInterface(IpInterface val)
**
** Default time to live for packets send on this socket. Value must
** be between 0 and 255. TTL of zero is only delivered locally.
**
native Int timeToLive
**
** True to enable outgoing packets to be received by the local socket.
**
native Bool loopbackMode
**
** Join a multicast group. If interface parameter is null,
** then `interface` field is used. Return this.
**
native This joinGroup(IpAddr addr, Int? port := null, IpInterface? interface := null)
**
** Leave a multicast group. If interface parameter is null,
** then `interface` field is used. Return this.
**
native This leaveGroup(IpAddr addr, Int? port := null, IpInterface? interface := null)
}