現在、ネットワークアプリケーションを構築しています。メソッドの 1 つは、ANDgate()
ソケットを使用して一部のバイトを転送します。クライアント側
public static ArrayList ANDgate(ArrayList bits, ArrayList macs, ArrayList tags, int gateNumber) throws IOException, GeneralSecurityException, ClassNotFoundException
{
Socket s= new Socket("192.168.1.109", 8888);
ObjectOutputStream oos = new ObjectOutputStream(s.getOutputStream());
ObjectInputStream ios = new ObjectInputStream(s.getInputStream());
//Some computation
oos.writeByte(p);
oos.flush();
oos.writeByte(p1);
oos.flush();
//Some computation
byte P = ios.readByte();
byte P1 = ios.readByte();
//Some computation
oos.writeByte(p_shared1);
oos.flush();
//Some computation
byte p_shared2 = ios.readByte();
//Some computation
oos.writeByte(p1_shared2);
oos.flush();
//Some computation
oos.close();
ios.close();
s.close();
}
サーバー側には、ほとんど同じコードがあります。プログラムの実行中に、このメソッドを呼び出して 1000 回 (またはそれ以上) 正常に実行できますが、次のエラーがランダムに表示されます。
Exception in thread "main" java.io.EOFException
at java.io.ObjectInputStream$PeekInputStream.readFully(Unknown Source)
at java.io.ObjectInputStream$BlockDataInputStream.readShort(Unknown Source)
at java.io.ObjectInputStream.readStreamHeader(Unknown Source)
at java.io.ObjectInputStream.<init>(Unknown Source)
at Gate.ANDgate(Gate.java:119)
119系はこちらObjectInputStream ios = new ObjectInputStream(s.getInputStream());
助けてくれてありがとう