に接続されているserver
2 つの接続SOCKET
があり、メッセージの送受信時に停止しないノンブロッキング モードclients
に設定しました。server
各接続のタイムアウトを設定したいのですSOCKET
が、次のコードを使用すると:
void getMessage(SOCKET connectedSocket, int time){
string error = R_ERROR;
// Using select in winsock
fd_set set;
timeval tm;
FD_ZERO(&set);
FD_SET(connectedSocket, &set);
tm.tv_sec = time; // time
tm.tv_usec = 0; // 0 millis
switch (select(connectedSocket, &set, 0, 0, &tm))
{
case 0:
// timeout
this->disconnect();
break;
case 1:
// Can recieve some data here
return this->recvMessage();
break;
default:
// error - handle appropriately.
break;
}
return error;
}
私のサーバーはノンブロッキングモードではなくなりました! 2 番目の接続からメッセージを取得するには、1 番目の接続のタイムアウトが終了するまで待たなければなりません。それは私が期待するものではありません!では、ノンブロッキング モードのタイムアウトを設定する方法はありますか? それとも自分で処理する必要がありますか?