IP地址在计算机中表示是32位二进制,通过GetAddress()来获得IP时,得到的是一个由二进制所转化的长整型IP地址,比如IP地址202.201.112.98的长整型表示就是:3402199138,同样也可以使用http://3402199138/来访问,所以在进行套接字绑定时要进行相应的转换。
//将CString 型IP地址在IPAddressCtrl中显示
CString strIP= "192.168.0.10 ";
DWORD dwIP;
dwIP = inet_addr(strIP);
unsigned char *pIP = (unsigned char*)&dwIP;
m_ipAddr.SetAddress(*pIP, *(pIP+1), *(pIP+2), *(pIP+3));
DWORD dwIP;
dwIP = inet_addr(strIP);
unsigned char *pIP = (unsigned char*)&dwIP;
m_ipAddr.SetAddress(*pIP, *(pIP+1), *(pIP+2), *(pIP+3));
//将IPAddressCtrl中的IP地址获得并转换成CString型
unsigned char *pIP;
CString strIP;
DWORD dwIP;
m_ipAddr.GetAddress(dwIP);
pIP = (unsigned char*)&dwIP;
strIP.Format( "%u.%u.%u.%u ",*(pIP+3), *(pIP+2), *(pIP+1), *pIP);
//C语言实现代码
#include<stdio.h>
int main()
{
unsigned long i=3402199138;
unsigned char* pI;
pI=(unsigned char*)&i;
printf("%u.%u.%u.%u\n",*(pI+3),*(pI+2),*(pI+1),*(pI));
system("pause");
return 0;
}
{
unsigned long i=3402199138;
unsigned char* pI;
pI=(unsigned char*)&i;
printf("%u.%u.%u.%u\n",*(pI+3),*(pI+2),*(pI+1),*(pI));
system("pause");
return 0;
}
转自:http://liuzhigong.blog.163.com/blog/static/17827237520112117416394/