如果我将套接字设置为非阻塞,如果没有要读取的新数据,我应该从 recv() 得到什么?
目前,我正在使用 if 语句来查看是否收到大于 -1 的内容。但如果什么也没收到,它似乎会以某种方式阻塞。这就是我的代码的样子:
flags = fcntl(newfd, F_GETFL);
flags |= O_NONBLOCK;
fcntl(newfd, F_SETFL, flags);
while(1){
...
...
if( (recvBytes = recv(newfd, recvBuf, MAXBUFLEN-1, 0)) > -1) {
...
}
}