Poco::Net

class MulticastSocket

Library: Net
Package: Sockets
Header: Poco/Net/MulticastSocket.h

Description

A MulticastSocket is a special DatagramSocket that can be used to send packets to and receive packets from multicast groups.

Inheritance

Direct Base Classes: DatagramSocket

All Base Classes: DatagramSocket, Socket

Member Summary

Member Functions: getInterface, getLoopback, getTimeToLive, joinGroup, leaveGroup, operator =, setInterface, setLoopback, setTimeToLive

Inherited Functions: address, available, bind, bind6, close, connect, destroyBufVec, error, fromFileDescriptor, getBlocking, getBroadcast, getError, getKeepAlive, getLinger, getNoDelay, getOOBInline, getOption, getReceiveBufferSize, getReceiveTimeout, getReuseAddress, getReusePort, getSendBufferSize, getSendTimeout, impl, init, isDatagram, isNull, isRaw, isStream, lastError, lastErrorDesc, makeBufVec, makeBuffer, operator !=, operator <, operator <=, operator =, operator ==, operator >, operator >=, peerAddress, poll, receiveBytes, receiveFrom, secure, select, sendBytes, sendTo, setBlocking, setBroadcast, setKeepAlive, setLinger, setNoDelay, setOOBInline, setOption, setReceiveBufferSize, setReceiveTimeout, setReuseAddress, setReusePort, setSendBufferSize, setSendTimeout, sockfd, supportsIPv4, supportsIPv6, type

Constructors

MulticastSocket

MulticastSocket();

Creates an unconnected, unbound multicast socket.

Before the multicast socket can be used, bind(), bind6() or connect() must be called.

Notice: The behavior of this constructor has changed in release 2.0. Previously, the constructor created an unbound IPv4 multicast socket.

MulticastSocket

explicit MulticastSocket(
    SocketAddress::Family family
);

Creates an unconnected datagram socket.

The socket will be created for the given address family.

MulticastSocket

MulticastSocket(
    const Socket & socket
);

Creates the DatagramSocket with the SocketImpl from another socket. The SocketImpl must be a DatagramSocketImpl, otherwise an InvalidArgumentException will be thrown.

MulticastSocket

MulticastSocket(
    const SocketAddress & address,
    bool reuseAddress = false
);

Creates a datagram socket and binds it to the given address.

Depending on the address family, the socket will be either an IPv4 or an IPv6 socket.

Destructor

~MulticastSocket virtual

~MulticastSocket() override;

Destroys the DatagramSocket.

Member Functions

getInterface

NetworkInterface getInterface() const;

Returns the interface used for sending multicast packets.

getLoopback

bool getLoopback() const;

Returns true iff loopback for multicast packets is enabled, false otherwise.

getTimeToLive

unsigned getTimeToLive() const;

Returns the TTL/hop limit for outgoing packets.

joinGroup

void joinGroup(
    const IPAddress & groupAddress
);

Joins the specified multicast group at the default interface.

joinGroup

void joinGroup(
    const IPAddress & groupAddress,
    const NetworkInterface & interfc
);

Joins the specified multicast group at the given interface.

leaveGroup

void leaveGroup(
    const IPAddress & groupAddress
);

Leaves the specified multicast group at the default interface.

leaveGroup

void leaveGroup(
    const IPAddress & groupAddress,
    const NetworkInterface & interfc
);

Leaves the specified multicast group at the given interface.

operator =

MulticastSocket & operator = (
    const Socket & socket
);

Assignment operator.

Releases the socket's SocketImpl and attaches the SocketImpl from the other socket and increments the reference count of the SocketImpl.

setInterface

void setInterface(
    const NetworkInterface & interfc
);

Sets the interface used for sending multicast packets.

To select the default interface, specify an empty interface.

This is done by setting the IP_MULTICAST_IF/IPV6_MULTICAST_IF socket option.

setLoopback

void setLoopback(
    bool flag
);

Enable or disable loopback for multicast packets.

Sets the value of the IP_MULTICAST_LOOP/IPV6_MULTICAST_LOOP socket option.

setTimeToLive

void setTimeToLive(
    unsigned value
);

Specifies the TTL/hop limit for outgoing packets.

Sets the value of the IP_MULTICAST_TTL/IPV6_MULTICAST_HOPS socket option.