我会试着简单地说。
类构造函数'B'接收套接字作为参数,它来自类'A'。在A中,套接字用于使用DataInputStream和DataOutputStream进行I / O.套接字和流都没有被A关闭。
然后,在B中我尝试从同一个套接字创建一个ObjectInputStream,但是我在OIS中得到一个空引用,并且抛出了EOFException。我不知道为什么会这样。也许我不能在不同类型的流中重用套接字。
我已阅读了许多相关问题,但没有人使用套接字。一些代码。
public HiloLoginHandler(Socket _socket) { // this is class 'A'
socket = _socket;
bytesOut = new DataOutputStream(socket.getOutputStream());
bytesIn = new DataInputStream(socket.getInputStream());
}
public ClientInputHandler(Socket _socket) { // This is Class 'B'
socket = _socket;
InputStream is= socket.getInputStream();
ObjectInputStream in= new ObjectInputStream(is); // EOFException here
}