如何使 recv 调用非阻塞并使其仅等待 5 秒

How to make recv call non blocking and make it to wait only 5 second

如何使 recv 调用非阻塞并使其仅等待 5 秒!

// Receive until the peer closes the connection
do {

    iResult = recv(ConnectSocket, recvbuf, recvbuflen, 0);
    if ( iResult > 0 )
        printf("Bytes received: %d\n", iResult);
    else if ( iResult == 0 )
        printf("Connection closed\n");
    else
        printf("recv failed with error: %d\n", WSAGetLastError());

} while( iResult > 0 );
fd_set readfds;
struct timeval count;
FD_ZERO(&readfds);
FD_SET(sockfd, &readfds);
select(0, &readfds, 0, 0, &count);
if (FD_ISSET(sockfd, &readfds))
{   
     if ((bytes=recv(sockfd, buffer2, 200, 0)) == -1) {
          return 0;
     }
}