ip长整型与字符串转换
ip长整型与字符串转换
connInfo->sd = accept(basicSocket, (sockaddr*)&socaddr, &nlen);
connInfo->port = socaddr.sin_port;
connInfo->addr = socaddr.sin_addr.S_un.S_addr;
connInfo结构赋值后如上
我现在想将接收到客户端的ip地址打印出来
sockaddr_in adr;
adr.sin_addr.S_un.S_addr = ntohl(coInfo.addr);
char *p = inet_ntoa(adr.sin_addr);
cout<<*p<<*p++<<*p++<<*p++<<*p++<<*p++<<*p++<<*p++<<*p++<<endl;
结果是721.0.0.1
不知道哪儿错了
[解决办法]
为什么不能直接 cout << p << endl; 呢
[解决办法]
为什么要加ntohl,不加怎样?
[解决办法]
adr.sin_addr.S_un.S_addr = ntohl(coInfo.addr);
去掉这个