ログイン、チャット、マッチメイキングを処理するゲームのクライアント サーバー プログラムに取り組んでいます。これはすべて c#.net で行われます。
私が抱えている問題はチャットにあります。別のコンピューターからチャットを非常に速く送信し始めるまで、チャットは正常に機能します。クライアントをラップトップにロードし、キーを壊してできるだけ早く送信すると、次のようになります。
Laptop:Hello <--- this is normal
Laptop:Hello2<EOF>msgLaptop: Hello3 <-- this is what happens. Hello3 should
be on the third line without the <EOF>msg.
何かがリセットされていないようですが、場所がわかりません。サーバーが何をしているかを見ることができるので、サーバーは正しい情報を送信します。
クライアントとサーバーの両方が非同期ソケット接続を使用します。beginend メソッドを使用してデータを長い文字列として送信し、クライアントまたはサーバーに解析させます。
たとえば、"msgtheMessage" msg のようなものは、チャットのメッセージです。
データが受信されると、「msg」であるヘッダーをチェックし、EOF をチェックしてそれらを解析し、チャット ルームに送信します。
あまりにも速く入ってくるデータを処理するための良い方法はありますか?
ちなみに、データが送信されているコンピューターでは、サーバーが向きを変えて送信元のコンピューターに同じように送信しても、データを受信するコンピューターではそのようには起こりません。