打印

lwip 客户端如何让服务器知道主动关闭了

[复制链接]
4507|16
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
sfd123|  楼主 | 2021-10-27 15:34 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
问题描述:
       我在ST207上使用lwip实现一个客户端,电脑上有个服务器(网络调试助手),正常情况下,客户端可以正常连接服务器,通信正常;我想要ST207在某些时候主动断开连接,然后在另外一个条件下再次建立连接;我在tcp_client_poll()函数里使用tcp_client_connection_close(tpcb,es);关闭连接,但是上位机的网络调试助手发现不了,应该是ST207缺少通知上位机连接断开


请问:
    在这里断开连接时还需要怎么处理?


非常感谢!

使用特权

评论回复
沙发
纪国圣| | 2021-10-28 19:03 | 只看该作者
本帖最后由 纪国圣 于 2021-10-28 19:13 编辑

正常断开的情况下,断开的一方如客户端会和服务器有通信协议,即所谓的四次挥手,以此通知服务器断开;还有一种是非正常断开,此时客户端可以添加心跳包,如果服务器检测不到心跳包,则认为客户端断开连接。

使用特权

评论回复
板凳
小叶三千| | 2021-10-29 08:18 | 只看该作者
lwip不太清楚,不过lwip还是基于TCP的吧,在TCP协议里面找,肯定有握手和挥手的报文

使用特权

评论回复
地板
drer| | 2021-11-8 16:36 | 只看该作者
应该会有握手信息的

使用特权

评论回复
5
kxsi| | 2021-11-8 16:37 | 只看该作者
要捕捉这个信息

使用特权

评论回复
6
gwsan| | 2021-11-8 16:40 | 只看该作者
是不是会进入中断啊

使用特权

评论回复
7
aoyi| | 2021-11-8 16:41 | 只看该作者
有握手和挥手的报文

使用特权

评论回复
8
SantaBunny| | 2023-3-5 16:41 | 只看该作者
TCP正常关闭是会有RST发出的,你可以抓包确认下。如果网线不通就发不出来,此时只能靠服务器端下一次通信超时了,默认一般比较长,可以考虑使用keepalive。

使用特权

评论回复
9
Pulitzer| | 2024-5-1 07:06 | 只看该作者

STM32芯片中有多个工作时钟源的外设很常见

使用特权

评论回复
10
童雨竹| | 2024-5-1 09:02 | 只看该作者

CPU借助于APB总线访问相关寄存器达到对I2C1工作模块的控制

使用特权

评论回复
11
Wordsworth| | 2024-5-1 10:05 | 只看该作者

ART2固定使用PCLK时钟,只有开启和关闭的问题,不存在其它时钟源选择

使用特权

评论回复
12
公羊子丹| | 2024-5-1 12:01 | 只看该作者

控制模块的时钟仍然由外设时钟PCLK提供

使用特权

评论回复
13
万图| | 2024-5-1 13:04 | 只看该作者

USART1可以有多个时钟源

使用特权

评论回复
14
Uriah| | 2024-5-1 14:07 | 只看该作者

STM32CUBEMX配置生成初始化代码

使用特权

评论回复
15
帛灿灿| | 2024-5-1 16:03 | 只看该作者

通过访问寄存器来控制I2C1工作时钟的开启。

使用特权

评论回复
16
Bblythe| | 2024-5-1 17:06 | 只看该作者

I2C1的时钟可以自行选择HSI或者SYSCLK

使用特权

评论回复
17
周半梅| | 2024-5-1 19:02 | 只看该作者

I2C1工作时钟源选择;I2C1模块工作时钟的开启使能。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

179

帖子

1

粉丝