当前位置: 代码迷 >> VC/MFC >> 请教CAsyncSocket类做Client为什么Connect()返回值一直是-1,GetLastError一直返回WSAEWOULDBLOCK
  详细解决方案

请教CAsyncSocket类做Client为什么Connect()返回值一直是-1,GetLastError一直返回WSAEWOULDBLOCK

热度:127   发布时间:2016-05-02 03:47:48.0
请问CAsyncSocket类做Client为什么Connect()返回值一直是-1,GetLastError一直返回WSAEWOULDBLOCK?
就算我把服务端监听关着去连也一样?那我如何知道Connect是失败的,只能等待OnConnect超时么??
------解决思路----------------------
非阻塞模式这种情况属于正常的,毕竟TCP三次握手需要时间
再说了,WSAEWOULDBLOCK本身就不代表是个确切的网络错误,在网络编程中对WSAEWOULDBLOCK也要做额外处理的,比如自定义超时时间去select来判断是否真的是失败

CAsyncSocket就更方便了,连接成功的话会触发OnConnect,这个逻辑是对的

干脆你就测试验证一下好了,把它改成阻塞模式的,再调试看结果呗
  相关解决方案