select 呼び出しを使用して、書き込みソケット fd からデータを send() したいと考えています。非ブロッキングソケット実装を使用します。どの実装が優れているか。
while(u4BytesSent < u2BufLen)
{
i4RetVal = send(sockFd, au1Buf + u4BytesSent, (u2BufLen - u4BytesSent));
if(i4RestVal == -1 && errno != EWOULDBLOCK)
{
break;
}
i4BytesSent = i4BytesSent + i4RetVal;
}
送信バッファが頻繁にいっぱいになると、このコードは CPU を占有しますか?
また
無限のタイムアウトで Select 呼び出しを使用します。