はコードを考えてみましょう。この時間帯のメッセージは失われます。C#のUDPサーバは
まあ、私はいくつかの種類oのバッファーだと思いますが、バッファーが誰もメッセージを聞いていない時間がいっぱいになると、メッセージは失われます。
私は誰かが、これは同じエンドポイントに数回BeginReceiveを呼び出すことにより、非常に簡単に解決することができることを言って覚えていたので、私はこの試みた:
for(int x = 0; x < 5;x++) {
escuta.BeginReceive(new AsyncCallback(ReceiveCallback), e);
}
奇妙なことに、同じソケット上で受信始まるん呼び出すことがないスローエラーをメッセージがすべて受信されるたびに、5つのbeginReceiveが発生し、5つのすべてが同じメッセージを受信します。
コードを改善する方法はありますか?
私は、プロトコルがUDPの場合は何も確信していませんが、私のコードのためにデータが失われることはありません。そして、私は大量のデータを期待しています。データはすでにキューにあり、別のスレッドはデータをディスクに書き込みます。私は最高のことを願っています。助けてくれてありがとう – uacaman
別の考え方(あなたの状況に応じて飛行するかもしれない)は、複数のUDPポートをあなたのクライアントに公開して、読み込みワークロードをいくつかのスレッドに分けることができます。あなたがしていることがすべてデータをキューに引き渡すのであれば、これはあまり効果がないかもしれません。 –