Я делаю пару серверов клиентов. Мой клиент очень хорошо подключается к серверу и создает ObjectInputStream (socket.getInputStream()) через сокет, от сервера к клиенту и наоборот. Тогда по какой-то мистической причине мой ObjectInputStream сервера каким-то образом ловит нулевой объект. Клиент не отправил ничего через сокет (я положил/../над методом отправки объекта, чтобы сделать это уверенным и даже System.out.printed все отправленные ранее объекты). Сервер ловит этот мистический объект только один раз и после чего все объекты, отправленные клиентом, работают так же, как они должны.Java ObjectInputStream (socket.getInputStream()) ловит нулевой объект
class ClientThread extends Thread {
//The socket where to listen/talk
Socket socket;
ObjectInputStream sInput;
ObjectOutputStream sOutput;
InputStream fInput;
OutputStream Output;
//my unique id (easier for deconnection)
int id;
//Objects that we will be receiving
Incomingdata datain;
//the date we connect
String date;
Player player;
boolean Connected = false;
//Constructor
ClientThread(Socket socket){
id = uniqueId++;
this.socket = socket;
try{
sOutput = new ObjectOutputStream(socket.getOutputStream());
sInput = new ObjectInputStream(socket.getInputStream());
Output = socket.getOutputStream();
} catch (Exception e){
System.out.println("Couldn't create Input/Output streams");
}
date = new Date().toString();
}
// what will run forever
public void run() {
// to loop until LOGOUT
Connected = true;
while(Connected) {
try {
datain = (Incomingdata) sInput.readObject(); //<--- this catches the mystical null! Even if nothing is sent over the socket?
}
catch (IOException e) {
TextArea.AddLine("Exception reading Streams: " + e);
break;
}
catch(ClassNotFoundException e2) {
break;
}
Как я объяснял кому-то другой день, объект и данные ввода/вывода потоки технологии из ушедшей в то время как все еще существовали такие проблемы, как «большой конец» и «малопонятный», и не было хороших стандартов связи. Теперь у нас есть XML и JSON. Они являются гораздо лучшим решением, чем использование потоков объектов. – ControlAltDel
. Думаю, это не ответ на мой вопрос? – user3738243
Похоже, проблема исчезла так же странно, как появилась! – user3738243