NAME
ACE_INET_Addr - Defines a C++ wrapper facade for the Internet domain address family format.
SYNOPSIS
#include <ace/INET_Addr.h>
class ACE_INET_Addr : public ACE_Addr
{
public:
ACE_INET_Addr (void);
ACE_INET_Addr (const ACE_INET_Addr &);
ACE_INET_Addr (const sockaddr_in *, int len);
ACE_INET_Addr (u_short port_number, const ASYS_TCHAR host_name[]);
ACE_INET_Addr (const ASYS_TCHAR address[]);
ACE_INET_Addr (
u_short port_number,
ACE_UINT32 ip_addr = INADDR_ANY
);
ACE_INET_Addr (
const ASYS_TCHAR port_name[],
const ASYS_TCHAR host_name[],
const ASYS_TCHAR protocol[] = ASYS_TEXT ("tcp")
);
ACE_INET_Addr (
const ASYS_TCHAR port_name[],
ACE_UINT32 ip_addr,
const ASYS_TCHAR protocol[] = ASYS_TEXT ("tcp")
);
~ACE_INET_Addr (void);
int set (const ACE_INET_Addr &);
int set (
u_short port_number,
const ASYS_TCHAR host_name[],
int encode = 1
);
int set (
u_short port_number,
ACE_UINT32 ip_addr = INADDR_ANY,
int encode = 1
);
int set (
const ASYS_TCHAR port_name[],
const ASYS_TCHAR host_name[],
const ASYS_TCHAR protocol[] = ASYS_TEXT ("tcp")
);
int set (
const ASYS_TCHAR port_name[],
ACE_UINT32 ip_addr,
const ASYS_TCHAR protocol[] = ASYS_TEXT ("tcp")
);
int set (const ASYS_TCHAR addr[]);
int set (const sockaddr_in *, int len);
virtual void *get_addr (void) const;
virtual void set_addr (void *, int len);
virtual int addr_to_string (
ASYS_TCHAR buffer[],
size_t size,
int ipaddr_format = 1
) const;
virtual int string_to_addr (const ASYS_TCHAR address[]);
void set_port_number (u_short, int encode = 1);
u_short get_port_number (void) const;
int get_host_name (
ASYS_TCHAR hostname[],
size_t hostnamelen
) const;
const ASYS_TCHAR *get_host_name (void) const;
const char *get_host_addr (void) const;
ACE_UINT32 get_ip_address (void) const;
int operator == (const ACE_INET_Addr &SAP) const;
int operator != (const ACE_INET_Addr &SAP) const;
virtual u_long hash (void) const;
void dump (void) const;
ACE_ALLOC_HOOK_DECLARE;
private:
sockaddr_in inet_addr_;
};
Initialization methods.
ACE_INET_Addr (void);
Default constructor.
ACE_INET_Addr (const ACE_INET_Addr &);
Copy constructor.
ACE_INET_Addr (const sockaddr_in *, int len);
Creates an ACE_INET_Addr from a sockaddr_in structure.
ACE_INET_Addr (u_short port_number, const ASYS_TCHAR host_name[]);
Creates an ACE_INET_Addr from a port_number and the remote host_name.
ACE_INET_Addr (const ASYS_TCHAR address[]);
Initializes an ACE_INET_Addr from the address, which can be "ip-number:port-number" (e.g., "tango.cs.wustl.edu:1234" or "128.252.166.57:1234"). If there is no ':' in the address it is assumed to be a port number, with the IP address being INADDR_ANY.
ACE_INET_Addr (u_short port_number, ACE_UINT32 ip_addr = INADDR_ANY);
Creates an ACE_INET_Addr from a port_number and an Internet ip_addr. This method assumes that port_number and ip_addr are in host byte order.
ACE_INET_Addr (
const ASYS_TCHAR port_name[],
const ASYS_TCHAR host_name[],
const ASYS_TCHAR protocol[] = ASYS_TEXT ("tcp")
);
Uses getservbyname to create an ACE_INET_Addr from a port_name, the remote host_name, and the protocol.
ACE_INET_Addr (
const ASYS_TCHAR port_name[],
ACE_UINT32 ip_addr,
const ASYS_TCHAR protocol[] = ASYS_TEXT ("tcp")
);
Uses getservbyname to create an ACE_INET_Addr from a port_name, an Internet ip_addr, and the protocol. This method assumes that ip_addr is in host byte order.
~ACE_INET_Addr (void);
Default dtor.
Direct initialization methods.
These methods are useful after the object has been constructed.
int set (const ACE_INET_Addr &);
Initializes from another ACE_INET_Addr.
int set (
u_short port_number,
const ASYS_TCHAR host_name[],
int encode = 1
);
Initializes an ACE_INET_Addr from a port_number and the remote host_name. If encode is enabled then port_number is converted into network byte order, otherwise it is assumed to be in network byte order already and are passed straight through.
int set (
u_short port_number,
ACE_UINT32 ip_addr = INADDR_ANY,
int encode = 1
);
Initializes an ACE_INET_Addr from a port_number and an Internet ip_addr. If encode is enabled then port_number and ip_addr are converted into network byte order, otherwise they are assumed to be in network byte order already and are passed straight through.
int set (
const ASYS_TCHAR port_name[],
const ASYS_TCHAR host_name[],
const ASYS_TCHAR protocol[] = ASYS_TEXT ("tcp")
);
Uses getservbyname to initialize an ACE_INET_Addr from a port_name, the remote host_name, and the protocol.
int set (
const ASYS_TCHAR port_name[],
ACE_UINT32 ip_addr,
const ASYS_TCHAR protocol[] = ASYS_TEXT ("tcp")
);
Uses getservbyname to initialize an ACE_INET_Addr from a port_name, an ip_addr, and the protocol. This assumes that ip_addr is already in network byte order.
int set (const ASYS_TCHAR addr[]);
Initializes an ACE_INET_Addr from the addr, which can be "ip-number:port-number" (e.g., "tango.cs.wustl.edu:1234" or "128.252.166.57:1234"). If there is no ':' in the address it is assumed to be a port number, with the IP address being INADDR_ANY.
int set (const sockaddr_in *, int len);
Creates an ACE_INET_Addr from a sockaddr_in structure.
virtual void *get_addr (void) const;
Return a pointer to the underlying network address.
virtual void set_addr (void *, int len);
Set a pointer to the address.
virtual int addr_to_string (
ASYS_TCHAR buffer[],
size_t size,
int ipaddr_format = 1
) const;
Transform the current ACE_INET_Addr address into string format. If ipaddr_format is non-0 this produces "ip-number:port-number" (e.g., "128.252.166.57:1234"), whereas if ipaddr_format is 0 this produces "ip-name:port-number" (e.g., "tango.cs.wustl.edu:1234"). Returns -1 if the size of the buffer is too small, else 0.
virtual int string_to_addr (const ASYS_TCHAR address[]);
Initializes an ACE_INET_Addr from the address, which can be "ip-addr:port-number" (e.g., "tango.cs.wustl.edu:1234"), "ip-addr:port-name" (e.g., "tango.cs.wustl.edu:telnet"), "ip-number:port-number" (e.g., "128.252.166.57:1234"), or "ip-number:port-name" (e.g., "128.252.166.57:telnet"). If there is no ':' in the address it is assumed to be a port number, with the IP address being INADDR_ANY.
void set_port_number (u_short, int encode = 1);
Sets the port number without affecting the host name. If encode is enabled then port_number is converted into network byte order, otherwise it is assumed to be in network byte order already and are passed straight through.
u_short get_port_number (void) const;
Return the port number, converting it into host byte order.
int get_host_name (ASYS_TCHAR hostname[], size_t hostnamelen) const;
Return the character representation of the name of the host, storing it in the hostname (which is assumed to be hostnamelen bytes long). This version is reentrant.
const ASYS_TCHAR *get_host_name (void) const;
Return the character representation of the hostname (this version is non-reentrant since it returns a pointer to a static data area).
const char *get_host_addr (void) const;
Return the "dotted decimal" Internet address.
ACE_UINT32 get_ip_address (void) const;
Return the 4-byte IP address, converting it into host byte order.
int operator == (const ACE_INET_Addr &SAP) const;
Compare two addresses for equality. The addresses are considered equal if they contain the same IP address and port number.
int operator != (const ACE_INET_Addr &SAP) const;
Compare two addresses for inequality.
virtual u_long hash (void) const;
Computes and returns hash value.
void dump (void) const;
Dump the state of an object.
ACE_ALLOC_HOOK_DECLARE;
Declare the dynamic allocation hooks.
AUTHOR
Doug Schmidt
LIBRARY
ace