Попробую попросту.
Конструктор класса 'B' получает сокет в качестве параметра, он исходит из класса 'A'. В A сокет используется для ввода-вывода с использованием DataInputStream и DataOutputStream. Ни сокет, ни потоки не были закрыты 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
}