ソケットで無限ループを使用しています。データを受信した場合は受信するか、データを送信したい場合は送信します。以下のようなもの。セレクトを使用しています。私はソケットSDを1つしか持っていません。
fd_set readsd;
int maxsd = readsd +1;
// all those actions of setting maxsd to the maximum fd +1 and FDSETing the FDs.
while(1)
{
FD_ZERO(&read_sd);
FD_SET(sd, &read_sd);
if(FD_ISSET(sd, &readsd))
{
//recv call
}
else
{
//send call
}
}
私の知る限り、select は、データが最初に到着するソケット記述子の 1 つを選択します。しかし、ここではソケットが 1 つしかないため、データがある場合は受信したり、そうでない場合は送信したりします。
その場合、上記のコードは問題ありませんか?または、私が知らない他のオプションがありますか?