inet_addr函数原理


#include
#pragma comment(lib,"ws2_32.lib")
#include
using namespace std;
/*unsigned long Inet_addr(const char* cp)
{
 unsigned long host=0;
 char* phost=(char*)&host;
//strtok(cp,".");//这样是错误的strtok里的第一个参数是可变参数,因为会把cp里的“.”用\0代替。。而cp是const型,,,,所以要把cp复制下来
 char s[80];
 strcpy_s(s,sizeof(s),cp);//strcpy可以防止内存越界,,,只复制sizeof个
 char*p=strtok(s,".");//strtok函数的返回值仍是字符串。。返回的是192,非空
 while(p)
 {
  *phost++=atoi(p);//把字符型转换为整型
 p=strtok(NULL,".");//第一次调用时,返回字符串168,非空
 }
 return host;
}
*/
int main()
{
 WSADATA wd;
 WSAStartup(0x0202,&wd);
 unsigned long k=inet_addr("192.168.1.1");
 
 cout< getchar();
return 0;
}

你可能感兴趣的:(inet_addr函数原理)