没有connect timeout, 只有send/recv timeout

解决方案 »

  1.   

    struct timeval Timeout;
    fd_set readfds; readfds.fd_count = 1;
    readfds.fd_array[0] = s;
    Timeout.tv_sec = 1;
             Timeout.tv_usec = 0;
             select(1, &readfds, NULL, NULL, &Timeout);
    可以吗?
      

  2.   

    将connect函数放到一个线程中进行,然后用WaitForSingleObject(pWorkThread->m_hThread , REQUESTTIMEOUT)进行超时控制。如果在指定的时间内没有链接上,返回值为WAIT_TIMEOUT