char szBuf[10];
int nRec;
nRec = recv(socket, szBuf, 10, 0);
以上的socket是阻塞套接字,如果此时socket的缓冲区内没有数据的话,那么recv会一直阻塞下去,但如果socket中只有5个字节的数据,那么recv是立即返回并返回值为5,还是会一直阻塞下去直到socket的缓冲区中的数据超过10个字节才返回??
int nRec;
nRec = recv(socket, szBuf, 10, 0);
以上的socket是阻塞套接字,如果此时socket的缓冲区内没有数据的话,那么recv会一直阻塞下去,但如果socket中只有5个字节的数据,那么recv是立即返回并返回值为5,还是会一直阻塞下去直到socket的缓冲区中的数据超过10个字节才返回??
我不知道socket实现有没有什么标准和参数设置,但Windows系统中,默认确实返回5,这个我试过。