#include <ace/SOCK_Dgram_Bcast.h>
class ACE_SOCK_Dgram_Bcast : public ACE_SOCK_Dgram {
public:
ACE_SOCK_Dgram_Bcast (void);
ACE_SOCK_Dgram_Bcast ( const ACE_Addr &local, int protocol_family = PF_INET, int protocol = 0, int reuse_addr = 0, const ASYS_TCHAR *host_name = 0 );
~ACE_SOCK_Dgram_Bcast (void);
int open ( const ACE_Addr &local, int protocol_family = PF_INET, int protocol = 0, int reuse_addr = 0, const ASYS_TCHAR *host_name = 0 );
int close (void);
ssize_t send ( const void *buf, size_t n, u_short portnum, int flags = 0 ) const;
ssize_t send ( const iovec iov[], size_t n, u_short portnum, int flags = 0 ) const;
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;
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
private:
int mk_broadcast (const ASYS_TCHAR *host_name);
ACE_Bcast_Node *if_list_;
int get_remote_addr (ACE_Addr &) const;
};
ACE_SOCK_Dgram_Bcast (void);
ACE_SOCK_Dgram_Bcast (
const ACE_Addr &local,
int protocol_family = PF_INET,
int protocol = 0,
int reuse_addr = 0,
const ASYS_TCHAR *host_name = 0
);
~ACE_SOCK_Dgram_Bcast (void);
Initiate a connectionless datagram broadcast endpoint.
int open (
const ACE_Addr &local,
int protocol_family = PF_INET,
int protocol = 0,
int reuse_addr = 0,
const ASYS_TCHAR *host_name = 0
);
int close (void);
ssize_t send (
const void *buf,
size_t n,
u_short portnum,
int flags = 0
) const;
ssize_t send (
const iovec iov[],
size_t n,
u_short portnum,
int flags = 0
) const;
iovec
datagrams to every interface. Returns the
average number of bytes sent.
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;
iovec
of size n
to addr
as a datagram (note
that addr must be preassigned to the broadcast address of the
subnet...) */
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;