硬汉嵌入式论坛

 找回密码
 立即注册
查看: 1265|回复: 5
收起左侧

[NetX] netx网络异常检测的正确打开方式

[复制链接]

24

主题

119

回帖

191

积分

初级会员

积分
191
发表于 2021-12-24 11:06:31 来自手机 | 显示全部楼层 |阅读模式
网络异常指的是插拔网线,或者连接端未正确关闭连接等等。
异常检测使用的是netx的keepalive功能,具体配置如下:
1-在nx-user中使能扩展通知,使能keepalive心跳,并配置具体超时检测时间。
2-在用户任务中开启通知,并编写回调函数。
工作原理:
只要是使能了keepalive,netx后台任务会根据超时参数自动发收,接收心跳信号包。溢出后会自动断开socket连接,这个不需要user关心,这样user代码就不会堵塞在永远等待接收状态。如果开启通知,user可以在回调函数里面设置断网标志,但并不需要你对网络异常主动做什么。
坑1:过于执着于拔网线侦测。
坑2:总想主动去侦测网络异常并主动进行任务重启。
坑3:如果用的是编译好的netx库文件,使能keepalive后,需要重新编译库文件。因为这个参数是由若干netx c文件直接使用的,没有一个库接口文件。

评分

参与人数 1金币 +50 收起 理由
eric2013 + 50 赞一个!

查看全部评分

回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2021-12-24 14:21:40 | 显示全部楼层
感谢楼主分享。
回复

使用道具 举报

3

主题

56

回帖

65

积分

初级会员

积分
65
发表于 2022-12-17 06:33:21 来自手机 | 显示全部楼层
请教一下,网路异常会不会导致以后接收不到数据或连接不上网络,如果一键重新初始化网路呢?
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2022-12-17 11:38:17 | 显示全部楼层
way2888 发表于 2022-12-17 06:33
请教一下,网路异常会不会导致以后接收不到数据或连接不上网络,如果一键重新初始化网路呢?

会有这种情况,有时候出错后就恢复不回来了。
回复

使用道具 举报

3

主题

56

回帖

65

积分

初级会员

积分
65
发表于 2022-12-17 13:19:13 来自手机 | 显示全部楼层
eric2013 发表于 2022-12-17 11:38
会有这种情况,有时候出错后就恢复不回来了。

硬汉哥,请教一下出现这个情况要怎样重新初始化网路呢?不复位单片机的前提下
回复

使用道具 举报

1万

主题

6万

回帖

10万

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
106660
QQ
发表于 2022-12-17 13:36:48 | 显示全部楼层
way2888 发表于 2022-12-17 13:19
硬汉哥,请教一下出现这个情况要怎样重新初始化网路呢?不复位单片机的前提下

之前tcpnet做过一个方案,netx的后面也得专门实现个类似的方案

【实战经验分享】一劳永逸的解决网线随意热插拔问题
https://www.armbbs.cn/forum.php? ... 5386&fromuid=58
(出处: 硬汉嵌入式论坛)
回复

使用道具 举报

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

本版积分规则

QQ|小黑屋|Archiver|手机版|硬汉嵌入式论坛

GMT+8, 2024-4-29 05:21 , Processed in 0.254142 second(s), 26 queries .

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2023, Tencent Cloud.

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