成功移植lwip1.3.1 1.3.2 1.4.1,裸机能跑tcp客户端和服务器。
开心之余,又有些问题需要请教了,lwip里面如何处理断线重连的问题?
下面是我实验的现象:
我在裸机上使用lwip,tcp做了服务器和客户端,在连接后把网线拔掉,tcp_poll函数还是会被执行的,这时候把网线插上(还没出现abort错误),需要重新连接(端口没变,原连接已经没反应了),连接后上一次连接的pcb仍然存在,这时候会发现轮询时候有两个pcb连接在运行。等了好几分钟后(关闭了保活设置)第一个pcb连接出现连接错误,自动断开。。。
这两个pcb占用同一个端口不会产生冲突吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
DP83848这个是PHY控制器,你用的是f4xx的芯片么,里面自带MAC。PHY位于物理层,是不会影响你的数据包(或者说PHY不关心你将要发送的数据),他只是完成一些物理电路上的传输参数(物理层定义了数据传送与接收所需要的电与光信号、线路状态、时钟基准、数据编码和电路等,并向数据链路层设备提供标准接口。物理层的芯片称之为PHY。摘自百度百科--PHY),而MAC则可以为你填写ETH(以太网)报头,过滤一些不正确或者不感兴趣的数据包,而IP TCP层的解析或者生成工作则有lwip这个协议栈代劳。
至于那个宏是指的是什么,要看这个芯片的手册才知道(可能是DP83848的一个寄存器地址或者是访问DP83848的IO地址,这个要看芯片手册跟电路图)。
一周热门 更多>