может кто-нибудь сказать мне, почему я не получу исключение, если удаленный сокет закрывается и отправляет FIN + ACK? Wireshark сообщает мне, что FIN + ACK получен и ACK отправляется ОС.Java Socket: no Exception on remote FIN + ACK локальный ACK
Вот мой код. Я действительно пробовал все.
byte firstByte = (byte)instream.read();
if (firstByte == -1){
return null;
}
byte[] bytes = new byte[instream.available() + 1];
bytes[0] = firstByte;
instream.read(bytes, 1, bytes.length - 1);
водоток имеет Socket.getInputStream(), outstream из Socket.getOutputStream().
Соединение будет закрыто моими 15 секундными биениями.
Сокет закрыт с другой стороны, и следующая операция для чтения из сокета с этой стороны просто скажет вам, что читать с такого же конца файла нечего. Но если вы закроете сокет со своей стороны и выполните эту операцию, он даст вам исключение, например, чтение из закрытого файла. Вы используете InputStream и как таковой скрываете то, что внизу (файл или сокет), и действуют одинаково для обоих – ata