完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
原子老师里面是程序 写了tcp_connect(tcpPCB,&rmtipaddr,TCP_CLIENT_PORT,tcp_client_connected);
这句代码就能调用tcp_client_connected吗? 我有几个疑问,tcp_client_connected的参数都没有赋值。 只是把tcp_client_connected地址传递一下能执行函数吗? 谁能解释一下这个回调函数是怎么运行的,C语言基础比较差。 下面一些关于的代码 typedef err_t (*tcp_connected_fn)(void *arg, struct tcp_pcb *tpcb, err_t err); err_t tcp_connect(struct tcp_pcb *pcb, ip_addr_t *ipaddr, u16_t port, tcp_connected_fn connected) { pcb->connected = connected;...} err_t tcp_client_connected(void *arg, struct tcp_pcb *tpcb, err_t err) { struct tcp_client_struct *es=NULL; ... return err; } |
|
相关推荐
2个回答
|
|
刚学lwip,试着解释下:
这句话没有调用tcp_client_connected,至少tcp_client_connected还没有运行,当运行tcp_connect时,只是把tcp_client_connected函数的地址传给了tcp_connect的最后一个参数。 以下的话有待验证: 甚至,程序运行到这里时,可能tcp_connect这条程序都没有运行,只有当三次握手成功后,才执行tcp_connect,(握手由内核执行,然后才通知程序执行tcp_connect,然后tcp_client_connected的地址(即函数入口)就赋值给了tcp_connect的最后一个参数) tcp_client_connected主要是注册了一些回调函数,它本身没有做什么实质性工作。 比如有一句是这样: tcp_recv(tpcb,tcp_client_recv); 这就是初始化LwIP的tcp_recv回调函数,这个函数(即被注册的tcp_client_recv)是在当TCP链接有数据传入时才执行。 |
|
|
|
仿真看代码啊
|
|
|
|
只有小组成员才能发言,加入小组>>
如何使用STM32+nrf24l01架构把有线USB设备无线化?
2568 浏览 7 评论
请问能利用51单片机和nRF24L01模块实现实时语音无线传输吗?
2359 浏览 5 评论
3207 浏览 3 评论
2836 浏览 8 评论
为什么ucosii上移植lwip后系统进入了HardFault_Handler?
2785 浏览 4 评论
请教各位大咖:有没有接收频率32M左右的芯片推荐的?先感谢啦!
658浏览 1评论
897浏览 0评论
1019浏览 0评论
664浏览 0评论
494浏览 0评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-18 11:24 , Processed in 1.282922 second(s), Total 79, Slave 62 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号