我的客户端要连接到远处的服务器!
1.我创建了一个用于与远处服务器通信的socket,然后用WSAEventSelect在这个socket上注册网络事件:FD_READ,FD_WRITE,FD_CONNECT;
2.然后用connect连接服务器;
3.在一个线程中用WSAWaitForMultipleEvents等待网络事件;
就是等不到FD_CONNECT,WSAWaitForMultipleEvents返回值为x12(就是18)
请问各位大侠,是什么原因?
我看网络上WSAEventSelect的例子都是说服务器端的,没有用于客户端的,难道不能用于客户端?

解决方案 »

  1.   

    WSAEventSelect模型的介绍中没有规定它不能作为客户端的阿~~
    在madn上面也没有特别说明必须作为服务器端不能作为客户端阿``
      

  2.   

    http://blog.csdn.net/limin/archive/2004/06/25/26806.aspx
    里面的
    五、代码流程中的代码部分提到了
    // 当目标端口正在监听时,对方系统返回ack+syn,确认号为第一次握手的序列号加1
        if (recv_tcphdr->tcp_flags == 0x12 &&
            ntohl(recv_tcphdr->tcp_acknowledgement) == ntohl(tcphdr->tcp_sequence) + 1)
        {
            nRetResult = 1;
            nRetMessageID = MESSAGE_REACH_DEST;
        }
    出现了0x12~~
    自己看看有没有帮助~~~