天线|RF射频
直播中

贺服窍

7年用户 940经验值
私信 关注
[问答]

如何在检测服务器断开情况下重新连接程序?

我的程序是参考战舰上面改过来的:按复位键  程序连接两次可以连接上,如果断电重连  就连不上,调试助手 显示1035错误
硬件没问题  因为运行 其他程序 上电和复位是一样的
void  tcp_client_init(void)//服务器初始化函数{      struct tcp_client_state* ts;  struct ip_addr ipaddr;   err_t ret_err;  IP4_ADDR(&ipaddr,192,168,0,122);       //目标IP  tcp_client_PCB = tcp_new();                        /*  建立通信的 TCP 控制块(Clipcb)               */   tcp_bind( tcp_client_pcb,IP_ADDR_ANY,TCP_CLIENT_PORT);         /*  绑定本地 IP 地址和端口号 不绑定也可以运行 端口号自己分配                      */   if(tcp_client_pcb!=NULL) {  printf("初始化进入");      ts = mem_malloc(sizeof(struct tcp_client_state)); //申请内存    tcp_arg(tcp_client_pcb, ts);  //将程序的协议控制块的状态传递给多有的回调函数  tcp_connect(tcp_client_pcb,&ipaddr,6000,tcp_client_connect); //连接函数tcp_client_accept成功连接到主机调用  tcp_recv(tcp_client_pcb, tcp_client_recv);//指定连接接收到新的数据之后将要调用的回调函数  tcp_poll(tcp_client_pcb, tcp_client_poll, 2);//轮询函数  发送数据 时间为2/2=1  }  }
检测状态在主程序中 5S检测一次,connect_net是连接状态标志位
   if(connect_net==1)   {          printf("开始重新连接   ");tcp_closed();tcp_client_init();if(connect_net==0) {printf("重新连接   ");}

回帖(9)

张龙

2019-8-27 07:14:05
回复【楼主位】yangzi6000:
-----------------------------
你参考的是我发的那个例程么?
举报

杜元晓

2019-8-27 07:51:44
楼主在吗?connect_net 这个是哪个函数的返回值?
你用哪个函数判断网络连接还在不在的?
举报

李德鹏

2019-8-27 08:04:12
楼主你移植到mini开发板的吗?能不能指点下
举报

孙榕

2019-8-27 08:09:38
关于客户端重连的问题能发个程序共享下不?谢谢!
举报

更多回帖

发帖
×
20
完善资料,
赚取积分