//file testAddr.cpp
#include "ace/INET_Addr.h"
int main(int argc, char * argv[])
{
ACE_INET_Addr addr;
ACE_INET_Addr addr2;
addr.set(1234,"235.0.0.1");
addr2.set(2345,"235.0.0.2");
const char *src_ip = addr.get_host_addr();
const char *dst_ip = addr2.get_host_addr();
char src_addr[64];
char dst_addr[64];
snprintf(src_addr,64,"%s:%d",addr.get_host_addr(),addr.get_port_number());
snprintf(dst_addr,64,"%s:%d",addr2.get_host_addr(),addr2.get_port_number());
printf("addr:[%s:%d],addr2:[%s:%d]\n",addr.get_host_addr(), addr.get_port_number(),addr2.get_host_addr(), addr2.get_port_number(
));
printf("addr2:[%s:%d]\n",addr2.get_host_addr(), addr2.get_port_number());
printf("addr:[%s:%d],addr2:[%s:%d]\n",src_ip, addr.get_port_number(),dst_ip, addr2.get_port_number());
printf("addr:[%s:%d]\n",src_ip,addr.get_port_number());
printf("addr2:[%s:%d]\n",dst_ip,addr2.get_port_number());
printf("src_addr:%s,dst_addr:%s\n",src_addr,dst_addr);
return 0;
}
#g++ -o test -lACE testAddr.cpp
#./test
addr:[235.0.0.1:1234],addr2:[235.0.0.1:2345]
addr2:[235.0.0.2:2345]
addr:[235.0.0.2:1234],addr2:[235.0.0.2:2345]
addr:[235.0.0.2:1234]
addr2:[235.0.0.2:2345]
src_addr:235.0.0.1:1234,dst_addr:235.0.0.2:2345
const char * ACE_INET_Addr::get_host_addr | ( | void | ) | const |
Return the "dotted decimal" Internet address representation of the hostname. This version is non-reentrant since it returns a pointer to a static data area. You should therefore either (1) do a "deep copy" of the address returned byget_host_addr(), e.g., using strdup() or (2) use the "reentrant" version of get_host_addr() described above.