ソケットをノンブロッキングに設定した場合、読み取る新しいデータがない場合、recv() から何を取得する必要がありますか?
現在、and 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) {
...
}
}