OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4247|回复: 7

基于RAM tcp客户端LWIP实现,如何在连接正常的情况下根据上位机发过来的新的IP和端口重新连接新的服务器????

[复制链接]

20

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1012
金钱
1012
注册时间
2017-7-27
在线时间
162 小时
发表于 2017-12-14 15:30:35 | 显示全部楼层 |阅读模式
10金钱

最佳答案

查看完整内容[请看2#楼]

已经解决,应该是原来的板子资源没有释放 原子哥关闭连接的函数是这个tcp_client_connection_close(tcppcb,0);//关闭连接 我自己重新定义了一个全局变量 struct tcp_client_struct *es_ex; tcp_client_connection_close(tcppcb,es_ex);//关闭连接 这样好像就可以了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

20

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1012
金钱
1012
注册时间
2017-7-27
在线时间
162 小时
 楼主| 发表于 2017-12-14 15:30:36 | 显示全部楼层
已经解决,应该是原来的板子资源没有释放
原子哥关闭连接的函数是这个tcp_client_connection_close(tcppcb,0);//关闭连接
我自己重新定义了一个全局变量
struct tcp_client_struct *es_ex;
tcp_client_connection_close(tcppcb,es_ex);//关闭连接
这样好像就可以了
回复

使用道具 举报

20

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1012
金钱
1012
注册时间
2017-7-27
在线时间
162 小时
 楼主| 发表于 2017-12-14 15:32:35 | 显示全部楼层
                if(tcppcb!=NULL)
                        tcp_client_connection_close(tcppcb,0);//关闭连接
                tcp_client_set_remoteip();
                lwip_comm_default_ip_set(&lwipdev);        //设置默认IP等信息               
                tcppcb=tcp_new();        //创建一个新的pcb
                if(tcppcb)                        //创建成功
                {
                        IP4_ADDR(&rmtipaddr,lwipdev.remoteip[0],lwipdev.remoteip[1],lwipdev.remoteip[2],lwipdev.remoteip[3]);
                        tcp_connect(tcppcb,&rmtipaddr,TCP_CLIENT_PORT,tcp_client_connected);//连接到目的地址的指定端口上,当连接成功后回调tcp_client_connected()函数
                }       

采用这种方式连接的还是原来的服务器,很奇怪
回复

使用道具 举报

20

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1012
金钱
1012
注册时间
2017-7-27
在线时间
162 小时
 楼主| 发表于 2017-12-14 15:33:07 | 显示全部楼层
但是我的IP和端口已经修改了
回复

使用道具 举报

20

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1012
金钱
1012
注册时间
2017-7-27
在线时间
162 小时
 楼主| 发表于 2017-12-14 15:41:43 | 显示全部楼层
LWIP如何才能进入初始化之前的状态呢?就是开机时一样,tcp_client_connection_close(tcppcb,0);//关闭连接这个好像还有一些资源没有被释放
回复

使用道具 举报

20

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1012
金钱
1012
注册时间
2017-7-27
在线时间
162 小时
 楼主| 发表于 2017-12-14 21:06:55 | 显示全部楼层
顶一下
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165352
金钱
165352
注册时间
2010-12-1
在线时间
2108 小时
发表于 2017-12-15 00:54:38 | 显示全部楼层
帮顶
回复

使用道具 举报

20

主题

169

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1012
金钱
1012
注册时间
2017-7-27
在线时间
162 小时
 楼主| 发表于 2017-12-15 16:08:16 | 显示全部楼层

原子哥,我是参照你的例程修改的,看视频教程里面掉线是可以重连的而且还可以设置新的IP,不知道为什么我的不行????
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-11-24 21:39

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表