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
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
~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.