C# で小さなオンライン ゲームを開発しています。現在、単純な同期 TCP ソケットを使用しています。しかし今(これはある種の「学習プロジェクト」であるため)、非同期ソケットに変換したいと考えています。クライアントには、次のメソッドがありますbyte[] SendAndReceive(Opcode op, byte[] data)
。しかし、非同期ソケットを使用すると、これはもう不可能です。たとえば、私のMapManager
クラスは最初にマップがフォルダー内にローカルにあるかどうか (チェックサム) をチェックし、そうでない場合はサーバーからマップをダウンロードします。
だから私の質問: 受信したデータをある種のバッファに保存し、このバッファが null になるまでポーリングせずに、データを送信して答えを得る良い方法はありますか?