在程序中已经实现了一台服务器和客户端联接传送数据的功能。
    现在是把服务器设置成了两台,当客户端联接不上第一台服务器时,让客户端再继续联接第二台服务器。请问如何判断客户端联接第一台服务器没有联接上?这种情况怎么来处理好?感谢各位?
     在客户端和服务器端程序中都用了WSAAsyncSelect,也就是变为异步处理。

解决方案 »

  1.   

    使用 WSAAsyncSelect 模型,在 connect 调用后,应用程序会受到 FD_CONNECT 通知,这个消息的 lParam 的高字节指示错误代码,连接成功或错误
      

  2.   

    第一台连接不上的时候connect自然失败
    如果开始已经连接上,那就发送握手包,好了,自己检测,10个握手包收不到,就认为断开
      

  3.   

    在connect之前,我已经用rtn = WSAAsyncSelect(sid, m_hWnd, WSA_ASYNC, FD_READ|FD_CONNECT|FD_CLOSE);来转换为异步了。
    如果联接成功,可以响应FD_CONNECT事件,可是不成功的事件如何获得呀?
      

  4.   

    服了你了,我都说了在 connect 调用后,应用程序会受到 FD_CONNECT 通知,这个消息的 lParam 的高字节指示错误代码,连接成功或错误成功与不成功的返回消息都是 FD_CONNECT
      

  5.   

    若你用 MFC, 直接判断 OnConnect 的 nErrorCode,若你用 API, 判断 HIWORD( lParam )understand?
      

  6.   

    非常感谢!还有一个问题就是:
    由于connect后不是马上知道答案,请问在联接一个服务器不成功后,在什么时机再去联接另一台服务器呀?
      

  7.   

    既然你知道测试 FD_CONNECT 的错误信息,那么每当失败的时候,就换个服务器继续 Connect 不就行了?
      

  8.   

    哈哈 就是就是 就象qwedcxza(xuxu)说的那样