高手请进,关于winsock2的wsarecv\wsasend问题
请各位高说提供些源代码以解小弟一时之急!主要是非住塞式收发数据

解决方案 »

  1.   

    发送数据好像不存在阻赛的问题,反正发送失败会马上返回,主要是接收,可以采用select来判断是否有数据到达,如果有再调用WSARECV函数,这样就不会阻赛了。
    例如:        //前面省去
    while (TRUE)
    {
    fd_set fdset; fdset.fd_count = 1;
    fdset.fd_array[0] = m_hSocket;
    TIMEVAL timeval; timeval.tv_sec = 0; timeval.tv_usec = 5000;
    int nSelect = select(1, &fdset, NULL, NULL, &timeval);
    if(nSelect == SOCKET_ERROR || nSelect == 0) 
    {
    continue;
    }

    int nRecv = wsarecv(m_hSocket, recvbuffer, DEFAULT_PACKET_SIZE, 0);
    if(nRecv != SOCKET_ERROR)
    {
                          //接收到数据之后的处理
                       }
    }
      

  2.   

    gz
    请问select()函数的作用是什么?msdn上可以查到么?
    要分我另开帖!