成功移植lwip1.3.1 1.3.2 1.4.1,裸机能跑tcp客户端和服务器。
开心之余,又有些问题需要请教了,lwip里面如何处理断线重连的问题?
下面是我实验的现象:
我在裸机上使用lwip,tcp做了服务器和客户端,在连接后把网线拔掉,tcp_poll函数还是会被执行的,这时候把网线插上(还没出现abort错误),需要重新连接(端口没变,原连接已经没反应了),连接后上一次连接的pcb仍然存在,这时候会发现轮询时候有两个pcb连接在运行。等了好几分钟后(关闭了保活设置)第一个pcb连接出现连接错误,自动断开。。。
这两个pcb占用同一个端口不会产生冲突吗?
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
已经上传了,不过上传的工程里面有个地方有问题,是应用层的数据结构的问题,
将struct http_server_app_arg{
uint8_t app_state;
uint8_t textlen;
uint8_t* dataptr;
};
更改成
struct http_server_app_arg{
uint8_t app_state;
uint16_t textlen;
uint8_t* dataptr;
};即可
我是用DHCP好像没问题,而且与外网通信也可以。可能我使用的时间不长,有空让它长时间连续工作试试。
怎么没看到?
一周热门 更多>