クライアントとサーバーの間でオブジェクトのバウンスに問題があります。クライアントサーバーの通信に問題があります
オブジェクトを作成します。いくつかのフィールドを更新してください。サーバーに送信します。 (この部分は作品)右この後、サーバは、さらにいくつかの値を
SomeObject thisObject = new SomeObject();
thisObject.setSomeValue(13); // update object to be sent
PrintStream toServer = new PrintStream(sock.getOutputStream());
ObjectOutputStream oos = new ObjectOutputStream(toServer);
oos.writeObject(thisObject);
oos.close();
toServer.println(oos); // send object to server
toServer.flush();
を更新し、1919年に設定します。
ObjectInputStream objFromClient = new ObjectInputStream(new BufferedInputStream(
sock.getInputStream()));
Served thisObject = (Served) objFromClient.readObject();
thisObject.setSomeValue(1919);
Serverは、クライアント
toClient = new PrintStream(sock.getOutputStream());
ObjectOutputStream oos = new ObjectOutputStream(toClient);
oos.writeObject(thisObject);
oos.close();
objFromClient.close();
sock.close();
に戻ってオブジェクトを送信しかし、時間が戻ってクライアント側..にプログラムをオブジェクトを取りに来るときソケットクローズ例外で失敗
ObjectInputStream objFromServer = new ObjectInputStream(
new BufferedInputStream(sock.getInputStream())); //java.net.SocketException: Socket is closed
thisObject = (Served) objFromServer.readObject();
....
問題を理解してください。
「ソケット」を作成しているコードを表示できますか? –
これはおそらく 'socket sock = new Socket(serverName、SERVER_PORT);' – JAM
と同じくらい簡単です。これはおそらく問題ではありませんが、どうして 'oos.writeObject(thisObject); oos.close(); ' と ' toServer.println(oos);最初のステップでは toServer.flush(); '?あなたは最初の行のペアを必要としませんか? 'PrintStream.println()'はパラメータとして 'ObjectOutputStream'を受け付けることもできますか? –