У меня есть этот код:
public void post(String message) {
output.close();
final String mess = message;
(new Thread() {
public void run() {
while (true) {
try {
output.println(mess);
System.out.println("The following message was successfully sent:");
System.out.println(mess);
break;
} catch (NullPointerException e) {
try {Thread.sleep(1000);} catch (InterruptedException ie) {}
}
}
}
}).start();
}
Как видите, я закрываю сокет в самом начале кода, а затем try
, чтобы использовать его для отправки некоторой информации на другой компьютер. Программа пишет мне «Следующее сообщение было успешно отправлено». Это означает, что исключение NullPointerException не было выдано.
Итак, Java не выдает никаких исключений, если пытается использовать закрытый поток вывода сокета? Есть ли способ проверить, закрыт или открыт сокет?
ДОБАВЛЕНО
Я инициализирую сокет следующим образом:
clientSideSocket = new Socket(hostname,port);
PrintWriter out = new PrintWriter(clientSideSocket.getOutputStream(), true);
browser.output = out;