你的另外一个socket是在listen吗?

解决方案 »

  1.   

    这要看你是用什么方法.
    如果你用的是非阻塞(如CAsyncSocket)返回0并不表示错误.
    GetLastErro ,如果是WSAEWOULDBLOCK并不表示是失败了.这时候要超时等一个信号量.在你的OnConnect 事件里设置该信号量.如果超时,则是失败.不知道你用什么方法.要是用的阻塞的方法.那就是错误了.仔细找找看.
      

  2.   

    你的socket有没有初始化(AfxSocketInit()),我曾经就是因为它connection()老返回0.
    仔细检查一下你的代码,说不定也是出现在类似这种的小问题上.
      

  3.   

    xyzboat说得不错,阻塞式的话,表示你失败了,而非阻塞式需要等待超时的信号量
      

  4.   

    其他的如send 和receive都会出现这样的情况