-2

ソケットと RMI の作成の基本を学びました。

問題は、ソケットを何に使用できるかです。ソケットを使用して文字列オブジェクトをサーバー プログラムに送信する方法について、SO でこの投稿を見ました。

Java: ソケットまたは RMI?

では、サーバーでこの String オブジェクトを取得した後、データベースにアクセスして保存できたのでしょうか? クライアントがこの String オブジェクトにアクセスする必要がある場合、サーバーはどのようにデータベースを取得してクライアントに送信するのでしょうか? ソケットのみを使用してこれを行うことはできますか?

RMI を使用してこれを実行できることはわかっています。

4

2 に答える 2

1

ソケットは、ネットワークストリームへの低レベルのアクセスを提供します。他のほとんどすべてはSocketServerSocketインスタンスの上に構築されます。

RMIは、ソケットを使用して、RMIサーバーおよびRMIクライアントが通信するための標準プロトコルを実装します。

DatagramSocket基本的にソケットを使用すると、TCP(またはインスタンスを使用する場合はUDP)で実行される限り、ネットワークベースのあらゆるものを実装できます。

この場合、追加のパフォーマンスが必要な場合は、通信を遅くするRMIプロトコルのオーバーヘッドがないため、ソケットを使用します。

RMIでは、文字列を返し、すべてがRMIによってラップされますが、ソケットを使用する場合ObjectOutputStreamは、サーバーからを使用して文字列をシリアル化しObjectInputStream、クライアントでを使用して逆シリアル化します。

于 2013-03-13T19:46:03.370 に答える
1

Java オブジェクトをシリアル化し、ソケット接続を介して送信できるストリームを作成し、ストリームを読み取って逆シリアル化できます。これといくつかのユーティリティは、基本的に RMI が行うことです。しかし、あなたがその気があれば、あなたはそれを自分で行うことができます.

このようなもの:

InputStream is = socket.getInputStream();   
ObjectInputStream ois = new ObjectInputStream(is);   
TestObj obj = (TestObj)ois.readObject();  

class TestObj implements Serializable {  
  //your class
}
于 2013-03-13T19:40:13.990 に答える