用CSocket连接一台PC,当这台PC死机时,socket一直在连接而不往下执行,代码:
CSocket *pSocket = new CSocket();
if(m_pSocket->Create()) 
{
   if(!pSocket->Connect(m_szHost, m_wPort))//一直在连接
   {
      pSocket->Close();
      delete pSocket; pSocket=NULL;
   }
   else
   {
    ...
   }
}

解决方案 »

  1.   

    地址和端口正确否?SetSockOpt试下超时.
      

  2.   

    用ConnectEx但是挺方便,不过需要XP及上。
    connect, WSAConnect似乎不支持超时,可以考虑放在一工作线程中,并且指定超时。
      

  3.   

    用CAsyncSocket类是不要等待,但是服务器端执行m_pSynSocket->Create(m_wPort)一直不成功,该用不同的端口问题依然存在,但用相同的端口在同一台PC上执行客户端程序时没有出现问题,帮我分析是什么原因,谢了!