在java中使用readObject()方法时出现EOFEException

在java中使用readObject()方法时出现EOFEException,java,Java,我正在尝试从服务器读取消息。下面是一段代码: try{ out = new ObjectOutputStream(socket.getOutputStream()); in = new ObjectInputStream(socket.getInputStream()); stdIn = new BufferedReader( new InputStreamReader(System.in)); J = new JChatCom

我正在尝试从服务器读取消息。下面是一段代码:

try{

    out = new ObjectOutputStream(socket.getOutputStream());
    in = new ObjectInputStream(socket.getInputStream());
    stdIn = new BufferedReader(
                new InputStreamReader(System.in));

    J = new JChatComm(out , in,"client","server");

    String userInput = "Free for a chat?";

    JPacket p = new JPacket(userInput,"client");
    out.writeObject(p);


    p = (JPacket)in.readObject();


    if (!p.message.equals("Sure. Let us begin.")){
        System.out.println("Server seems to be unavailable.");
        socket.close();
    }
    else{
        System.out.println("Chat Initiated..");
    }
}
catch(Exception e){
    e.printStackTrace();
}
但它给出了以下输出:

java.io.EOFException
at        
java.io.ObjectInp utStream$BlockDataInputStream.peekByte(ObjectInputStream.java:2596)
at java.io.ObjectInputStream.readObject0(ObjectInputStream.java:1317)
at java.io.ObjectInputStream.readObject(ObjectInputStream.java:369)
at JClient.callServer(JClient.java:35)
at jtalkG24.main(jtalkG24.java:18)
第35行是包含readObject()方法的行。
我想不出哪里出了错。

你没有错。你已经到了小溪的尽头。这就是例外的意思。你必须抓住它并做出相应的反应