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

аюсь прочитать байты с сервера с помощью программы Socket, то есть я использую InputStream для чтения байтов. Если я пропущу размер длины, я смогу прочитать байты, но я не уверен, какой может быть длина. Поэтому я не могу инициализировать массив байтов.

Тоже попробовалwhile (in.read() != -1)Я заметил, что цикл работает нормально при отправке данных, но следующая строка после цикла не выполняется, я чувствую, что он все еще ищет данные в потоке, но данных нет. Если я закрою соединение с сервером, то мой клиент выполнит следующую строку, следующую за циклом.

Я не уверен, где я иду не так?

this.in = socket.getInputStream();

int dataInt = this.in.read();

while(dataInt != -1){
    System.out.print(","+i+"--"+dataInt);
    i++;
    dataInt = this.in.read();
}

System.out.print("End Of loop");

Я получаю вывод как: -

,1--0,2--62,3--96,4--131,5--142,6--1,7--133,8--2,9--16,10--48,11--56,12--1,13--0,14--14,15--128,16--0,17--0,18--0,19--48,20--0,21--0,22--0,23--0,24--0,25--1,26--0,27--0,28--38,29--114,30--23,31--20,32--70,33--3,34--20,35--1,36--133,37--48,38--51,39--49,40--52,41--49,42--55,43--49,44--52,45--52,46--54,47--55,48--50,49--51,50--52,51--48,52--53,53--56,54--51,55--48,56--48,57--57,58--57,59--57,60--57,61--57,62--57,63--57,64--56

Но нет выхода для: - Конец цикла

Пожалуйста, руководство, как мне закрыть петлю?

Ждем от вас ответа. Спасибо всем заранее.

Ответы на вопрос(7)

Ваш ответ на вопрос