本帖最后由 VisualEleven 于 2011-07-13 16:23:39 编辑

解决方案 »

  1.   

    为啥呢?可以供下次使用,如果你的socket有效的吗?比如关闭了的话,你就要从集合中FD_CLR()去掉
      

  2.   

    比如有可读的socket用FD_ISSET判断?不初始化?下次还不是一样的?
      

  3.   


    BOOL CMySocket::IsReadible(BOOL& bReadible, DWORD dwTimeout)
    {
      ASSERT(m_hSocket != INVALID_SOCKET);  timeval timeout;
      timeout.tv_sec = dwTimeout / 1000;
      timeout.tv_usec = dwTimeout % 1000;
      fd_set fds;
      FD_ZERO(&fds);
      FD_SET(m_hSocket, &fds);
      int nStatus = ::select(0, &fds, NULL, NULL, &timeout);
      if (nStatus == SOCKET_ERROR)
        return FALSE;
      else
      {
        bReadible = !(nStatus == 0);
        return TRUE;
      }
    }
      

  4.   

    不需要,除非你断开了那个socket要从你的数据中清空出去。