0

現在、ネットワークアプリケーションを構築しています。メソッドの 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());

助けてくれてありがとう

4

0 に答える 0