#include <ace/SOCK_Dgram_Mcast.h>
class ACE_SOCK_Dgram_Mcast : public ACE_SOCK_Dgram {
public:
ACE_SOCK_Dgram_Mcast (void);
int subscribe ( const ACE_INET_Addr &mcast_addr, int reuse_addr = 1, const ASYS_TCHAR *net_if = 0, int protocol_family = PF_INET, int protocol = 0 );
int unsubscribe (void);
ssize_t send (const void *buf, size_t n, int flags = 0) const;
ssize_t send (const iovec iov[], size_t n, int flags = 0) const;
int set_option (int option, char optval);
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
private:
ACE_HANDLE open ( const ACE_Addr &local, int protocol_family = PF_INET, int protocol = 0 );
ssize_t send ( const void *buf, size_t n, const ACE_Addr &addr, int flags = 0 ) const;
ssize_t send ( const iovec iov[], size_t n, const ACE_Addr &addr, int flags = 0 ) const;
int make_multicast_address ( const ACE_INET_Addr &mcast_addr, const ASYS_TCHAR *net_if = ASYS_TEXT ("le0") );
ACE_INET_Addr mcast_addr_;
};
ACE_SOCK_Dgram_Mcast (void);
int subscribe (
const ACE_INET_Addr &mcast_addr,
int reuse_addr = 1,
const ASYS_TCHAR *net_if = 0,
int protocol_family = PF_INET,
int protocol = 0
);
If you have called open already, subscribe closes the socket and opens a new socket bound to the mcast_addr.
Interface is hardware specific. use netstat -i to find whether your interface is, say, le0 or something else. If net_if == 0, subscribe uses the default mcast interface. Returns: -1 on error, else 0.
int unsubscribe (void);
ssize_t send (const void *buf, size_t n, int flags = 0) const;
n
bytes in buf
.
ssize_t send (const iovec iov[], size_t n, int flags = 0) const;
n
iovecs
.
int set_option (int option, char optval);
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
ssize_t send (
const void *buf,
size_t n,
const ACE_Addr &addr,
int flags = 0
) const;
ssize_t send (
const iovec iov[],
size_t n,
const ACE_Addr &addr,
int flags = 0
) const;
int make_multicast_address (
const ACE_INET_Addr &mcast_addr,
const ASYS_TCHAR *net_if = ASYS_TEXT ("le0")
);
ACE_INET_Addr mcast_addr_;
IP address.