关于LWIP断开网线后重连问题(热插拔问题)
来源:互联网 发布:php api接口开发 框架 编辑:程序博客网 时间:2024/06/11 19:38
最近在弄STM32+LWIP协议,在网络拔掉网线情况下,无法重新连接。网上找了好多方法都没有实现,着实郁闷!后来无意间看到了暂时解决这一问题的方法,虽然不是那么完美,但最算能解决问题。分享给大家。
问题:LWIP建立一个TCP服务器,收发数据也正常。但是客户端非正常断线-如客户端掉电,突然拔掉客户端的网线,然后重新连接服务器,就连接不上了。
原因:LWIP_CLOSE(),在非正常断线情况下使用不知道有什么还占着内存释放不了,没法正常释放资源。有高手知道怎么释放,可以指点一下。
我的方法是:使用协议栈自带的keep alive功能,自动检测网络是否掉线,来释放资源。利用lwip的回调机制,每次建立连接成功的时候回调用acept函数,在里面加一个flag来判断就好。
在main()函数中添加
//断网检测
if(((ETH_ReadPHYRegister(PHY_ADDRESS, PHY_BSR) & PHY_Linked_Status) == 0x00) || (RJ45_COUNTER))
{
RJ45_COUNTER = 1; //掉线标志位
}
在
static err_t Tcpsvrpoll(void *arg, struct tcp_pcb *pcb)
{
//添加
if(RJ45_COUNTER)
{
tcp_keepalive(pcb);
}
}
1 0
- 关于LWIP断开网线后重连问题(热插拔问题)
- Vxworks下检测关于socket连接关闭的问题-----拔掉网线或超时,自动断开
- 关于网线的一些问题
- ubuntu 无线网络 出现突然链连接断开情况(网线网络无问题)转载
- 网线问题
- 关于LWIP的接收实时性问题
- 关于“远程桌面连接已断开”问题的处理(转)
- 关于“远程桌面连接已断开”问题的处理(转)
- 关于mysql_query导致连接断开的问题
- 关于客户端长时间自动断开的问题
- 关于判断Socket断开的问题
- 关于C#Socket断开重连问题
- lwip移植的问题
- LWIP 问题:DHCP
- 浅谈LWIP对齐问题
- LwIP裸机ping问题
- socket 网线断开判断
- SecureCRT 连接断开问题
- 优秀程序员必备的六个好习惯
- Java Web学习之JSP基本知识篇
- Visual Studio使用技巧
- uva350 - Pseudo-Random Numbers
- Linux进程间通信——使用信号量
- 关于LWIP断开网线后重连问题(热插拔问题)
- POJ 2524 Ubiquitous Religions 并查集
- 缓存替换算法笔记 ——2Q
- 花生壳发布网站直接将网址绑定到具体的项目上——jboss版
- destoon实现调用热门关键字的方法
- 汉澳师攻城
- JNDI在tomcat中的配置
- Linux进程间通信——使用共享内存
- 工作日志2014-07-16