4

私は文字列配列オブジェクトを持っています。まあ言ってみれば

String[] names = new String[7];

また、クライアント システムで ObjectOutputStream を使用してファイルに保存することで、このオブジェクトを永続化しています。ObjectInputStream を使用して格納されたオブジェクトを読み取っています。ここまででOK。ここで、このオブジェクトをソケット経由で別のシステムに送信したいと考えています。

どうやってするの?助けてください。ありがとう。

4

3 に答える 3

6

Socket
get output streamのインスタンスを作成し、それに書き込む必要があります (例: ObjectOutputStreamを使用)。

Socket echoSocket = new Socket(hostName, portNumber);
ObjectOutputStream out = new ObjectOutputStream(echoSocket.getOutputStream());
out.writeObject(names);  

Oracle ドキュメントで例を見つけることができます: example
また、この回答はあなたに役立つはずです

于 2013-11-05T10:13:28.783 に答える
2

String Array オブジェクトは Serializable インターフェイスを実装しているため、ネットワーク経由でバイト ストリームとして送信できます。

Socket socket = new Socket(host, port);
ObjectOutputStream outputStream = new ObjectOutputStream(
                socket.getOutputStream());
String[] names = new String[1]; // Empty at the moment
outputStream.writeObject(names); 
于 2013-11-05T10:14:51.643 に答える
1

あなたの質問に答えるには: Java 配列と文字列はシリアル化可能な型であるため、文字列の配列を文字列 (!) に変換し、ネットワーク経由で送信し、逆シリアル化 (オブジェクトに変換して戻す) することができます。参照: java でオブジェクトをシリアル化する方法を参照してください。ただし、その代わりに、データを xml、json、またはその他のトランスポート データ形式に変換し、文字列として送信することをお勧めします。これにより、多くの手間が省けます。

さらに進んで、非常に低いレベル (ソケット、ストリームなど) でデータを送信する代わりに、より高いレベルのサービスを作成し、http 経由で呼び出すことをお勧めします。restletSpring Remotingなどのフレームワークは簡単にセットアップできます。

于 2013-11-05T10:14:10.537 に答える