OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6114|回复: 5

uip uip_tcp_appstate_t 疑惑

[复制链接]

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-8-28
在线时间
0 小时
发表于 2014-6-4 11:43:13 | 显示全部楼层 |阅读模式
5金钱
uip.h中定义了一个 uip_tcp_appstate_t appstate的结构体成员,这个成员需要自己实现,否则编译报错。参照MINI板的ENC28J60例子,在tcp_demo.h中重定义了一个typedef struct tcp_demo_appstate uip_tcp_appstate_t;的结构,也就是说uip.h中的 appstate是指向tcp_demo_appstate的,但是我发现程序还实现了web服务器的功能,在这个里面struct httpd_state *s = (struct httpd_state *)&(uip_conn->appstate); 这样就奇怪了,appstate分配的空间大小事根据tcp_demo_appstate来的,显然httpd_state需要的空间大小远大于tcp_demo_appstate,那这个指针指向的内容不是越界了吗,这个是怎么工作的咧。寻求高人回答。谢谢...

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

2

主题

16

帖子

0

精华

新手上路

积分
44
金钱
44
注册时间
2012-8-28
在线时间
0 小时
 楼主| 发表于 2014-6-4 12:31:17 | 显示全部楼层
回复

使用道具 举报

3

主题

9

帖子

0

精华

初级会员

Rank: 2

积分
52
金钱
52
注册时间
2014-8-28
在线时间
2 小时
发表于 2014-10-26 00:33:43 | 显示全部楼层
兄弟你解决了吗,我也有这个疑问啊
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-10-26 23:13:57 | 显示全部楼层
帮顶....
回复

使用道具 举报

9

主题

44

帖子

2

精华

中级会员

Rank: 3Rank: 3

积分
402
金钱
402
注册时间
2014-8-15
在线时间
0 小时
发表于 2015-3-16 20:44:30 | 显示全部楼层
我刚好看到这里,一开始也很疑惑。这一句的意思是先取结构体uip_conn->appstate的地址,然后转换成struct httpd_state *类型。所以根本不存在什么越界问题,大小是一样的。但是我仔细找根源的时候却表示不能理解了,因为appstate的内容和httpd_state 的内容根本不同啊,怎么赋值的?哪些元素被赋值了?
回复

使用道具 举报

6

主题

12

帖子

0

精华

初级会员

Rank: 2

积分
65
金钱
65
注册时间
2014-4-3
在线时间
2 小时
发表于 2015-12-25 15:43:42 | 显示全部楼层
对啊,我也是理解不了这个问题才来搜索的,结果还真有这个普遍的疑惑。原子大大怎么也帮顶了?
个人觉得是不是把uip_tcp_appstate_t定义为一个httpd_state和现在的tcp_demo_appstate的共用体比较合适?
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-21 18:04

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表