C++网络编程经常会涉及到类似192.168.1.218到unsigned long 的转换
1,采用api处理:
char szHost[20] = "192.168.1.218";
unsigned long lIP=inet_addr(szHost);
in_addr in;
in.S_un.S_addr=lIP;
long ll=ntohl(lIP);
char* chHost=inet_ntoa(in); //应该得到192.168.1.218
2,利用ACE处理
ACE_INET_Addr addr (10003,"192.168.1.218"); //或者ACE_INET_Addr addr (10003,ll);
unsigned long lllIPNet=addr.get_ip_address();
unsigned long lllIP=htonl(lllIPNet); //这里lllIP应该==lIP
const char* chIP=addr.get_host_addr(); //应该得到192.168.1.218