提交 dd287cb3 编写于 作者: X xuchi

windows和linux系统ipv6差异

上级 43d689a8
......@@ -368,11 +368,15 @@ namespace doyou {
&nRemoteLen
);
// 获取IP地址-本地
char* ipLocal = inet_ntoa(pLocalAddr_in->sin_addr); // 指针间接访问对象, 函数返回指针指向的对象,是一个静态都变量,不会随着函数执行结束而释放
CELLLog_Info("AcceptEx ipv4_local[%s]", ipLocal);
// 获取IP地址-远端客户端
char* ip = inet_ntoa(pRemoteAddr_in->sin_addr); // 指针间接访问对象, 函数返回指针指向的对象,是一个静态都变量,不会随着函数执行结束而释放
//CELLLog_Info("AcceptEx ipv4[%s]", ip);
char* ipRemote = inet_ntoa(pRemoteAddr_in->sin_addr); // 指针间接访问对象, 函数返回指针指向的对象,是一个静态都变量,不会随着函数执行结束而释放
CELLLog_Info("AcceptEx ipv4_remote[%s]", ipRemote);
return ip; // 指针变量值拷贝
return ipRemote; // 指针变量值拷贝
}
// 获取新加入客户端本端和远端IP信息-IPV6
......@@ -399,12 +403,17 @@ namespace doyou {
&nRemoteLen
);
// 获取IP地址-本地
static char ipLocal[INET6_ADDRSTRLEN] = {};
inet_ntop(AF_INET6, &pLocalAddr_in->sin6_addr, ipLocal, INET6_ADDRSTRLEN - 1);
CELLLog_Info("AcceptEx ipv6_local[%s]", ipLocal);
// 获取IP地址-远端客户端, 从para2中获取IPV6地址,存储到para3
static char ip[INET6_ADDRSTRLEN] = {}; // 静态对象
inet_ntop(AF_INET6, &pRemoteAddr_in->sin6_addr, ip, INET6_ADDRSTRLEN - 1); // ?-1: 如果有结束符就不用拷贝
//CELLLog_Info("AcceptEx ipv6[%s]", ip);
static char ipRemote[INET6_ADDRSTRLEN] = {}; // 静态对象
inet_ntop(AF_INET6, &pRemoteAddr_in->sin6_addr, ipRemote, INET6_ADDRSTRLEN - 1); // ?-1: 如果有结束符就不用拷贝
CELLLog_Info("AcceptEx ipv6_remote[%s]", ipRemote);
return ip; // 指针变量值拷贝
return ipRemote; // 指针变量值拷贝
}
......
......@@ -65,5 +65,11 @@ IP直接存入黑名单中,所以,服务端获取客户端IP地址很有意
20.注意区分指针变量的值,和指针变量指向的对象,可以有多个指针变量存储相同的值,这些指针都指向同一对象。
21.一台PC可以同时存在多个网卡,一个网卡就是一个IP。
22.windows和linux系统ipv6差异:
在windows系统中,开启ipv6服务器,客户端连接该ipv6对应的ipv4是连接不上的。
在linux系统中,开启ipv6服务器,客户端可连接ipv4以及对应IPV6都可以连接上。
......@@ -8,8 +8,11 @@ void main()
int a = 0;
char b = '0';
printf("a=%02X\n", a);
printf("b=%02X\n", b);
//printf("a=%02X\n", a);
//printf("b=%02X\n", b);
char* p = NULL;
p = "1";
printf("%s \n", p);
system("pause");
}
\ No newline at end of file
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册