成功移植lwip1.3.1 1.3.2 1.4.1,裸机能跑tcp客户端和服务器。
开心之余,又有些问题需要请教了,lwip里面如何处理断线重连的问题?
下面是我实验的现象:
我在裸机上使用lwip,tcp做了服务器和客户端,在连接后把网线拔掉,tcp_poll函数还是会被执行的,这时候把网线插上(还没出现abort错误),需要重新连接(端口没变,原连接已经没反应了),连接后上一次连接的pcb仍然存在,这时候会发现轮询时候有两个pcb连接在运行。等了好几分钟后(关闭了保活设置)第一个pcb连接出现连接错误,自动断开。。。
这两个pcb占用同一个端口不会产生冲突吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
用TI的官方例程里的1.3.2的模板移植1.4.1的源码,错误警告一大串啊。
麻烦楼主讲讲呗。
lwip修改了内部发送数据的函数,有朋友用的时候也有问题,但上os后是可以的,我帮你问问五木。
1.4.1将tcp_write等一些函数进行了改动,但process基本没变,但有一点需要注意,是需要手动写一个sys_now函数的函数体,尽管没有用操作系统,也需要写,这个与超时,连接计时有关。
u32_t sys_now(void){
return system_time;
}
在硬件定时器中对其进行计时操作即可。其他跟1.3.2配置没有太大改变。
也可以把错误警告贴上图,大家研究一下
一周热门 更多>