Я использую TCP Socket в своем приложении Java. Я пытаюсь получить данные байт с некоторого устройства с помощью метода readInt()
.TCP Socket Hangs при получении в Java
Этот метод работает нормально, если я получаю 4 байта от устройства. Но если я получаю меньше 4 байтов или ничего, то зависает readInt()
. Он заблокирован и не возвращается. Он должен выбросить исключение EOFException
, если нет данных для получения, но он висит.
Код:
DataOutputStream dataOutputStream = new DataOutputStream(socket.getOutputStream());
DataInputStream din = new DataInputStream(socket.getInputStream());
int res = din.readInt();
Правда, блокирование - это естественное поведение. –