Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
wellcoder
engine2.0
提交
dd287cb3
E
engine2.0
项目概览
wellcoder
/
engine2.0
与 Fork 源项目一致
Fork自
xc13262215230 / engine2.0
通知
1
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
E
engine2.0
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
dd287cb3
编写于
4月 07, 2023
作者:
X
xuchi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
windows和linux系统ipv6差异
上级
43d689a8
变更
5
隐藏空白更改
内联
并排
Showing
5 changed file
with
27 addition
and
9 deletion
+27
-9
engine2.0/engine2.0/Depends/include/Iocp.hpp
engine2.0/engine2.0/Depends/include/Iocp.hpp
+16
-7
engine2.0/engine2.0/Doc/Record.txt
engine2.0/engine2.0/Doc/Record.txt
+6
-0
engine2.0/engine2.0/TestDemo/main.c
engine2.0/engine2.0/TestDemo/main.c
+5
-2
engine2.0/engine2.0/engine2.0.sdf
engine2.0/engine2.0/engine2.0.sdf
+0
-0
engine2.0/engine2.0/engine2.0.v12.suo
engine2.0/engine2.0/engine2.0.v12.suo
+0
-0
未找到文件。
engine2.0/engine2.0/Depends/include/Iocp.hpp
浏览文件 @
dd287cb3
...
...
@@ -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
*
ip
Remote
=
inet_ntoa
(
pRemoteAddr_in
->
sin_addr
);
// 指针间接访问对象, 函数返回指针指向的对象,是一个静态都变量,不会随着函数执行结束而释放
CELLLog_Info
(
"AcceptEx ipv4_remote[%s]"
,
ipRemote
);
return
ip
;
// 指针变量值拷贝
return
ip
Remote
;
// 指针变量值拷贝
}
// 获取新加入客户端本端和远端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
ip
Remote
[
INET6_ADDRSTRLEN
]
=
{};
// 静态对象
inet_ntop
(
AF_INET6
,
&
pRemoteAddr_in
->
sin6_addr
,
ip
Remote
,
INET6_ADDRSTRLEN
-
1
);
// ?-1: 如果有结束符就不用拷贝
CELLLog_Info
(
"AcceptEx ipv6_remote[%s]"
,
ipRemote
);
return
ip
;
// 指针变量值拷贝
return
ip
Remote
;
// 指针变量值拷贝
}
...
...
engine2.0/engine2.0/Doc/Record.txt
浏览文件 @
dd287cb3
...
...
@@ -65,5 +65,11 @@ IP直接存入黑名单中,所以,服务端获取客户端IP地址很有意
20.注意区分指针变量的值,和指针变量指向的对象,可以有多个指针变量存储相同的值,这些指针都指向同一对象。
21.一台PC可以同时存在多个网卡,一个网卡就是一个IP。
22.windows和linux系统ipv6差异:
在windows系统中,开启ipv6服务器,客户端连接该ipv6对应的ipv4是连接不上的。
在linux系统中,开启ipv6服务器,客户端可连接ipv4以及对应IPV6都可以连接上。
engine2.0/engine2.0/TestDemo/main.c
浏览文件 @
dd287cb3
...
...
@@ -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
engine2.0/engine2.0/engine2.0.sdf
浏览文件 @
dd287cb3
无法预览此类型文件
engine2.0/engine2.0/engine2.0.v12.suo
浏览文件 @
dd287cb3
无法预览此类型文件
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录