OpenEdv-开源电子网

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

W5500客户端如何主动连服务器?

[复制链接]

10

主题

26

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-6-3
在线时间
13 小时
发表于 2017-5-24 22:06:25 | 显示全部楼层 |阅读模式
1金钱
一般的设置是,先打开服务器,再用客户端去连。
但是现在有一个情况是,假如服务器关闭了,连接中断。客户端如何尝试去连接服务器呢?
求赐教

最佳答案

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

我在用W5500的时候,做了一个心跳包,如果收不到服务器的心跳,就说明出问题了,然后触发重连机制。 void Check_Tcp_Status(void) { if(Heart_Delay==0) { SYS_VAL.Tcp_Status=0; S1_State=0;//重连服务器 Success_Connect=0; Heart_Ptr=0; W5500_Send_Delay_Counter=27000; } } S1_State=0,在while(1)里面有个W5500_Socket_Set();会自动触发重连。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

5

主题

266

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1526
金钱
1526
注册时间
2016-7-20
在线时间
155 小时
发表于 2017-5-24 22:06:26 | 显示全部楼层
我在用W5500的时候,做了一个心跳包,如果收不到服务器的心跳,就说明出问题了,然后触发重连机制。
void Check_Tcp_Status(void)
{
        if(Heart_Delay==0)
        {
                SYS_VAL.Tcp_Status=0;
                S1_State=0;//重连服务器
                Success_Connect=0;
                Heart_Ptr=0;
                W5500_Send_Delay_Counter=27000;
        }
}

S1_State=0,在while(1)里面有个W5500_Socket_Set();会自动触发重连。
我是可以什么都不说 ,但不可以什么都不做。
回复

使用道具 举报

11

主题

216

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1124
金钱
1124
注册时间
2015-2-27
在线时间
485 小时
发表于 2017-5-24 22:11:15 | 显示全部楼层
读状态啊,断了就重新连接呀,官方例程不是给了状态机的例程吗
回复

使用道具 举报

10

主题

26

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-6-3
在线时间
13 小时
 楼主| 发表于 2017-7-20 16:21:55 | 显示全部楼层
enan 发表于 2017-5-24 22:11
读状态啊,断了就重新连接呀,官方例程不是给了状态机的例程吗

谢谢您的回答。能说详细一点吗?读哪个状态?还有官方历程是指?
回复

使用道具 举报

10

主题

26

帖子

0

精华

新手上路

积分
23
金钱
23
注册时间
2016-6-3
在线时间
13 小时
 楼主| 发表于 2017-7-20 17:13:32 | 显示全部楼层
super910906 发表于 2017-7-20 16:57
我在用W5500的时候,做了一个心跳包,如果收不到服务器的心跳,就说明出问题了,然后触发重连机制。
void  ...

谢谢你的建议。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-4-3 03:19

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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