Send函数返回SOCKET_ERROR,WSAGetLastError()为10035,Error lookup解释为:无法立即完成一个非阻挡性套接字操作。 为什么会出现此种问题?应该如何处理?谢谢![email protected]

解决方案 »

  1.   

    这个错误是你的socket状态为非组塞的,出现这个错误很正常的
      

  2.   

    以后的发送过程总是出现该错误,导致发送失败,请问ShallonXu(导弹分子)应该怎样处理???
      

  3.   

    你选择了非阻塞方式,当然会出现这个错误了.而且每次调用都会出现这个错误的..因为这样,你的函数要马上返回...
    如果你是继承CAsyncSocket,并且选择了非阻塞方式,你就要重载
    void OnSend(int errCode)
    {
       Send("your own data");
    }
    等函数...
      

  4.   

    你可以稍微休眠一下,然后再发,在一个循环里面,也可以采用其他的方式
    比如:
    ret = send(...)
    i = 0;
    while(ret = SOCKET_ERROR && (error = GetlastError()) == 10035)
    {
    sleep(50);
      ret = send(...);
    i++;
    }
      

  5.   

    谢谢ShallonXu(导弹分子)和mty(天鱼)
    我发现出现此种问题与机器的网络状况有关。