私は一般的にネットゲームを開発しています:
接続しているクライアントごとにserverThreadを起動するサーバーがあります。
その目的は、特定のクライアントからのメッセージをリッスンし、サーバーで処理することです。
また、開かれたクライアントごとに、サーバーからのメッセージをリッスンするスレッドであるclientThreadを起動します。
2つのスレッドは非常に単純で類似したスレッドであり、Runnable Interfaceを実装しているため、runメソッドをオーバーライドします。
各Runメソッドは、開始時にコマンド(ブロッキングコマンド)を持つある種の無限ループです。
intコマンド=m_In.readInt();
次に、受信したコマンドに対してケース構造を切り替えることでプロセスを実行します。
プロセスが完了した後、ループによりコードはブロッキングm_In.readInt()に戻り、
別のコマンドが来るのを待ちます。
私の質問は次のとおりです。私のネットゲームには、このm_Inを介した通信を使用する十分なオプションがあります。したがって、2つ以上のメッセージがclientThreadにほぼ集まっている場合、dataInputStreamはどのように機能しますか?
最初のメッセージの処理を開始し、処理が完了すると、ある種のキューにある2番目のメッセージを取得しますか?または、2番目のメッセージをドロップして、失われる可能性がありますか?たぶん、そのストリームにはバッファがあるので、2番目のメッセージをキューなどに格納しますか?
ありがとう