NETCONN_TCP客户端问题

2019-07-21 04:29发布

今天移植带操作系统的LWIP可以ping的通,之后移植NETCONN_TCP客户端。
板子IP:192.168.1.30
电脑iP:192.168.1.118
main.c在加上
后运行程序ping不通,
返回来的IP地址有些怪。
然后查到
“err = netconn_connect(tcp_clientconn,&server_ipaddr,server_port);//连接服务器”这一条指令一直是返回未连接状态。进入不了下一条指令的ERR_OK状态
       再修改一下电脑的IP换成不同网段再换回和板子同一网段之后,才可以连接电脑服务器,并且在网络调试助手中断开服务器
连接再连接板子也可以自动连接服务器。

        问题是为什么初始运行程序不能自动连接我的电脑服务器,非得电脑这边断线重连一次板子才能连接电脑服务器?

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
7条回答
正点原子
1楼-- · 2019-07-21 09:59
这是我们探索版的例程么?
361901725@qq.co
2楼-- · 2019-07-21 10:06
是的,按着你们的例程往407IGT6的板子移植
taizonglai
3楼-- · 2019-07-21 16:06
因为你的电脑端服务器可能正在使用指定端口号相关的资源,所以当你的开发板再次连接服务器的时候由于相应的端口号以及资源正在被使用,所以连接失败,而你在服务器上主动断开一次连接就相当于释放了服务器指定端口号的资源。这个时候你的开发板作为客户端再次连接服务器的时候就会连接成功。
361901725@qq.co
4楼-- · 2019-07-21 16:06
 精彩回答 2  元偷偷看……
taizonglai
5楼-- · 2019-07-21 19:42
你重启板子说明你的客户端并未正确的执行断开与服务器的操作,仔细了解一下TCP断开时的四次握手和断开连接是应该调用哪些程序?你直接重启板子,根本就没有执行正确断开与服务器的连接这一步,而服务器还傻傻的以为客户端正和他连接这呢!你可能会说为什么你的电脑连接其他服务器突然掉电以后重启后还可以连接上服务器,那是因为这些服务器和客户端程序可能针对这种情况有专门的处理方法,这个处理方法就需要你自己去慢慢探索了。
361901725@qq.co
6楼-- · 2019-07-21 20:49
回复【6楼】zuozhongkai:
---------------------------------
刚才试过了,是在WIN7下是需要断线重连一次才能正常通信,WINXP下正常。那估计探索者的源程序是不是也在WIN7下也是这样?系统的问题?

一周热门 更多>