LWIP移植成功了

2020-01-01 17:34发布

成功移植lwip1.3.1 1.3.2 1.4.1,裸机能跑tcp客户端和服务器。
开心之余,又有些问题需要请教了,lwip里面如何处理断线重连的问题?

下面是我实验的现象:
我在裸机上使用lwip,tcp做了服务器和客户端,在连接后把网线拔掉,tcp_poll函数还是会被执行的,这时候把网线插上(还没出现abort错误),需要重新连接(端口没变,原连接已经没反应了),连接后上一次连接的pcb仍然存在,这时候会发现轮询时候有两个pcb连接在运行。等了好几分钟后(关闭了保活设置)第一个pcb连接出现连接错误,自动断开。。。
这两个pcb占用同一个端口不会产生冲突吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
99条回答
yunye
1楼-- · 2020-01-13 05:18
恭喜楼主
xhyzjiji
2楼-- · 2020-01-13 05:25
chengqun 发表于 2013-12-26 20:12
楼主能不能问下一般像这个#define DP83848_PHY_ADDRESS       0x01 /* Relative to STM324xG-EVAL Board  ...

DP83848这个是PHY控制器,你用的是f4xx的芯片么,里面自带MAC。PHY位于物理层,是不会影响你的数据包(或者说PHY不关心你将要发送的数据),他只是完成一些物理电路上的传输参数(物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为PHY。摘自百度百科--PHY),而MAC则可以为你填写ETH(以太网)报头,过滤一些不正确或者不感兴趣的数据包,而IP TCP层的解析或者生成工作则有lwip这个协议栈代劳。
至于那个宏是指的是什么,要看这个芯片的手册才知道(可能是DP83848的一个寄存器地址或者是访问DP83848的IO地址,这个要看芯片手册跟电路图)。
xhyzjiji
3楼-- · 2020-01-13 09:39
东海傲虾 发表于 2013-12-13 17:23
一直是在OS下用的LWIP,裸机的问题比较多呢。

我也想用操作系统,寒假一定要好好把握时间
xhyzjiji
4楼-- · 2020-01-13 11:08
yunye 发表于 2013-12-26 21:55
恭喜楼主

谢谢,大家一起学习~~
chengqun
5楼-- · 2020-01-13 14:10
 精彩回答 2  元偷偷看……
chengqun
6楼-- · 2020-01-13 17:44
xhyzjiji 发表于 2013-12-29 16:43
DP83848这个是PHY控制器,你用的是f4xx的芯片么,里面自带MAC。PHY位于物理层,是不会影响你的数据包(或 ...

大侠,我还想问下,轮询还是中断是不是也是要通过寄存器来设置的?

一周热门 更多>