クライアントクラスとサーバークラスがあります。サーバーを呼び出すために使用するクライアント メソッドがあり、jvm セッション中にこのメソッドを複数回使用しようとすると、コードがハングします。
クライアント コードのメイン メソッド:
methodA();
methodA();
ois.close(); //ObjectInputStream
oos.close(); //ObjrctOutputStream
is.close(); //InputStream
os.close(); //OutputStream
socket.close();
クライアントコードは次のmethodA()
ようになります。
os = socket.getOutputStream();
oos = new ObjectOutputStream(os);
oos.writeObject(obj);
is = socket.getInputStream();
ois = new ObjectInputStream(is);
Object o = ois.readObject();
サーバー コードのメイン メソッドは次のようになります。
while (true) {
Socket socket = serverSocket.accept();
is = socket.getInputStream();
ois = new ObjectInputStream(is);
Object o = ois.readObject();
servermethod();
}
oos.close();
ois.close();
is.close();
os.close();
serverSocket.close();
サーバーは次のserverMethod()
ようになります。
os = socket.getOutputStream();
oos = new ObjectOutputStream(os);
Object ob = getObject() ; //this method is working fine
oos.writeObject(ob);
私がやりたかったのは、クライアントが を使用してサーバーを数回呼び出すことでしたmethodA()
。ストリームを正しく処理していない可能性があります。何か助けはありますか?