ソケットに基づいてサーバーとクライアントの通信をセットアップしたいと考えています。クライアントはサーバーに接続して、サーバーからさまざまな通知を受け取ることができます。これは、次のようにクライアント側で実装できます
...
Message* msg = NULL;
while ( msg = receiveMessage() )
handleMessage( msg );
...
このコードは、クライアント側の別のスレッドで実行され、サーバーからのさまざまな種類の通知を処理する必要があります。ただし、クライアントはリクエストを送信することでソケットと通信できる必要があります。つまり、
Request requestMsg;
if ( sendMessage( requestMsg ) )
{
Message* response = receiveMessage();
if ( response->type() == REQUEST_REPLY )
...
}
質問:これを達成するにはどうすればよいですか? スレッドの読み取りを中断したくありませんが、特定の要求に対する応答を受け取る必要があります。これは、ローカル ドメイン ストリーム ベースの UNIX ソケットです。