2011-12-10 15 views
1

私はインターネット経由でtcp/ip経由でサーバ/クライアント通信を実装しようとしています。彼らの状態を同期しようとすると、サーバーとクライアントは少しおしゃべりになります。java通信プロトコル

client: sends state 
server: check state and request differences 
client: sends 1 element 
server: sends ack/nak 
client: sends 1 element 
server: sends ack/nak 
. 
. 
. 
etc. 

これを実装する最良の方法は何ですか?私は生のソケットを使うべきですか?私は2つの接続、各方向に1つを使用する必要がありますか?フレームワークを使うべきですか?任意のアイデアが評価されます。

おかげ

EDIT:これを実施するための最良の方法は何ですか、実装の際に大きな負荷(データのギガバイト)、安定性と使いやすさが優先されますか?

..そして、クライアントとサーバーの間には違いはありません。彼らはいつでも役割を変えることができ、つながりを作ることができます。

クライアントとサーバーの両方がJavaプログラムであることを行っている場合など

+0

"ベスト"とは何ですか?実装が簡単ですか?特定のターゲットプラットフォームでのパフォーマンス?スケーラビリティ?あなたの質問をより多くの情報で更新してください。 – maerics

答えて

1

を再接続処理するフレームワークを使用することが良いことRMIを使用しての代替案を検討することもでき:

のJava Remote Method Invocation(RMI)システムを使用すると、あるJava仮想マシンで実行されているオブジェクトが、別のJava仮想マシンで実行中のオブジェクトのメソッドを呼び出すことができます。 RMIは、Javaプログラミング言語で記述されたプログラム間のリモート通信を提供します。

ソケットの上に独自のプロトコルを実装するのが簡単です。

+0

私は抽象が好きですが、セットアップが複雑であることを恐れています。インターネット経由で複数のプラットフォーム上で実行する必要があります。 – Stig

1

大きな負荷(ギガバイトの データ)、安定性と実装の容易さが優先される場合、これを実装する最良の方法は何ですか?

これらの目標は、カスタムソリューションを実装する代わりに、安定したフレームワークを使用するというヒントです。

Java Webサービス(Googleではたくさんの例があります)を調べて、クライアントが両方ともサーバーインターフェイスを公開しているようにしてください。
SOAPサービスの代わりにRESTfulをお勧めします。

関連する問題