首页 新闻 搜索 专区 学院

请教大虾,关于断线重连的问题

0
悬赏园豆:10 [已解决问题] 解决于 2013-03-18 10:56

请问一下,我在写断线重连,关闭了服务器检测到已断线之后,在客户端写了这些代码来续连

if (client->sockCreate)
   {
    AfxMessageBox(_T("与服务器断开连接"));
    client->sockCreate=false;
    SOCKADDR_IN addrSrv;
    addrSrv.sin_addr.S_un.S_addr=inet_addr("xxx.xxx.xxx.xxx");
    addrSrv.sin_family=AF_INET;
    addrSrv.sin_port=htons(6000);
    while (1)
    {
     reConn=connect(client->sockClient,(SOCKADDR*)&addrSrv,sizeof(SOCKADDR));
     if (reConn==SOCKET_ERROR)
     {
      //AfxMessageBox(_T("SOCKET_ERROR"));
      //return 0;
     }
     else
     {
      client->sockCreate=true;
      AfxMessageBox(_T("连接成功"));
      break;
     }
    }
   }

请问这样有没有什么问题,运行的结果是整个界面卡住了,也没有连接上

一枚程序的主页 一枚程序 | 初学一级 | 园豆:108
提问于:2013-03-11 21:47
< >
分享
最佳答案
0

首先你得确定reConn返回的是什么状态消息。找到为什么没连接上的原因。

整个界面卡住是因为如果在没连上的情况下你的代码会进入无限循环。

收获园豆:10
Zachary_Fan | 小虾三级 |园豆:762 | 2013-03-15 15:17
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册