Форум программистов, компьютерный форум, киберфорум
Java: Сети
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.83/6: Рейтинг темы: голосов - 6, средняя оценка - 4.83
0 / 0 / 2
Регистрация: 24.02.2010
Сообщений: 19
1

Чтение данных из входного потока сокета

27.03.2017, 15:16. Показов 1207. Ответов 3
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Всем привет!

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
s = new Socket(this.parametersModbusTCP.getIpAddress(), this.parametersModbusTCP.getPort());
s.setSoTimeout(maxTimeout);
...
try{
     InputStream inputStream = socket.getInputStream();
     int numberByte;
....
     numberByte = inputStream.read(buferRecive, numberByteInReceivedPacket, buferRecive.length - numberByteInReceivedPacket);
....
} catch (SocketTimeoutException ex) {
     session.setStatusError(ErrorsComunication.TIMEOUT);
     return;
}
Столкнулся с тем, что метод inputStream.read иногда возвращает -1, а иногда останавливает текущий поток и после ожидания времени maxTimeout вызывает исключение SocketTimeoutException.
Что значит -1?
Если -1 показывает, что нет данных, то почему не останавливается поток и не вызывается исключение SocketTimeoutException через заданное время?
Может -1 показывает, что соединение разорвано?
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
27.03.2017, 15:16
Ответы с готовыми решениями:

Чтение данных из сокета
Доброго времени суток! Подскажите, такой вопрос, есть один чатик, пользователи которого получают...

Чтение файла из входного потока
есть код в нем есть путь к файлу, как мне сделать так чтоб я не писал путь к файлу а данные...

Регистр сдвига входного потока данных
Здравствуйте! Для простого 8-ми битного регистра сдвига reg shift_reg код на verilog будет...

Удалить символ из входного потока вводимых данных
Напишите программу, которая удаляет символ определяется пользователем, из входного потока вводимых....

3
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
27.03.2017, 19:21 2
учись пользоваться гуглом и читать документацию https://docs.oracle.com/javase... html#read()
0
0 / 0 / 2
Регистрация: 24.02.2010
Сообщений: 19
28.03.2017, 07:34  [ТС] 3
При работе с файлом понятно, что при получении -1 данные закончились (достигли конца файла). А что значит -1 в контексте сокета? Значит сервер мне больше данных не пришлет? Если я хочу получить с сервера ещё данных на мой следующий запрос, мне требуется пересоздать соединение?
0
Эксперт Java
378 / 370 / 114
Регистрация: 30.06.2010
Сообщений: 1,445
28.03.2017, 09:23 4
да.
1
28.03.2017, 09:23
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
28.03.2017, 09:23
Помогаю со студенческими работами здесь

Непрерывное чтение данных из сокета
Всем привет снова я, создал клиент который должен прочитать почту все по логину и паролю...

Получите удвоенную сумму всех положительных членов входного потока данных
Дано натуральное число n, входной поток данных: действительные числа a1,a2,a3, ... , aN. Получите...

Чтение данных из дескриптора сокета без создания нового буфера
Для чтения данных из сокета например с помощью функции read или recv нужно создать буфер и передать...

Open/Save Dialog. Сериализация данных. Запись/чтение данных объектов в/из потока.
Описана файловая переменная FileOfFilms: file of TFilmArr и переменная, содержащая имя файла...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
4
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru