1

私は Java クライアント サーバー アプリケーションに取り組んでいます。

クライアントはメッセージ シーケンスを送信し (メッセージはさまざまな種類で、ヘッダーを取得できます)、応答をリッスンします。送信用と受信用の 2 つのスレッドがあります。そのため、エラーが発生した場合や返信が届かない場合に返信を処理する必要があります。たとえば、もう一度メッセージを送信することができます。

私の質問は..私を助けることができるJavaパターンはありますか?

送信と相対応答を単一のトランザクションのように処理したいのですが、同期通信を行う必要はないことに注意してください。TX スレッドでシーケンス内のすべてのメッセージを送信し、RX スレッドで応答を待ちます。

メディエーターパターンに考えましたが、それが正しい方法かどうかわかりません。

ありがとう

4

1 に答える 1

0

質問が純粋に送信プロトコルに関するものである場合は、NAK を検討します。 http://en.wikipedia.org/wiki/NAK_(プロトコルメッセージ)

マルチキャスト経由でファイルを送信する JCast と呼ばれるプロトコルを作成しました。ファイルは、番号が付けられた小さなフラグメントに分割されます。受信側のクライアントは、取得できなかった欠落フラグメント (NAK) を返信します。その後、サーバーは NAK されたフラグメントのみを再送信します。

編集: ACK に対する NAK の利点は、サーバーが ACK を待たずに必要なすべてのパケットを送信できることです。現在、ネットワークは非常に改善されているため、ほとんどのパケットが到着します。到着しない少数のものは、再送信されるだけです。

于 2013-10-30T21:43:43.180 に答える