C/S通信中
服务端 关闭连接后
客户端代码
recv接收数据会返回1054错误(远程主机关闭连接)recv函数是在新建线程中调用的
我想在recv返回错误之后 在重新连接服务端 该怎么回去啊 调用goto函数 感觉不好
因为主线程有主动连接代码
while(1)

   .....
   connect()
}

解决方案 »

  1.   

    直接在while循环中调用connect不就行了。
    主需要满足recv返回值等于1054就调用connect
      

  2.   

    while(1)
    {
    if(GetlastError()== 10054)
    {
        ShutDown();
        connect();
    }
    }
      

  3.   

    回LS两位大哥 我也知道 recv返回错误后 继续调用  不知道语法上该怎么写
    并且主线程有主动连接的代码
    我在recv中在重新写个主动连接的代码 老感觉有点重复了
    又不想用goto
      

  4.   

    用个状态标志就可以了。
    bool bConnected = false;
    while(1)
    {
       if(!bConnected)
       {
           if(connect())
                bConnected = true;
       }
       ...  if(GetlastError()== 10054)
      { 
            bConnected = false;
      }
    }