В цикле, этот код работает (на стороне сервера):Java чтение из сокета
try {
BufferedInputStream is = new BufferedInputStream(cnn.getInputStream());
InputStreamReader isr = new InputStreamReader(is);
int character;
StringBuffer process = new StringBuffer();
while ((character = isr.read()) != 13) {
process.append((char) character);
}
println("Input: " + process.toString());
} catch (Exception e) { }
клиент ничего не посылает, но process.toString()
выводит бесконечные вопросительные знаки. переменная is
выводит это: [email protected]
(последнее число постоянно меняется)
это не вход должен быть пустым и падают обратно catch
блока, если клиент ничего не посылать?
Что я делаю неправильно?
примечание: цикл while продолжается вечно, потому что нет конца для ввода, я смог увидеть вопросительные знаки, исходящие, поставив предел 100 символов в переменную process
.
Является ли клиент закрытием гнезда? Потому что если так, 'isr.read()' будет продолжать возвращать -1 ... О, и печать результата 'InputStreamReader.toString()' никогда не будет делать ничего полезного. –
Вы немного изменили этот код, прежде чем опубликовать его. Например, процесс называется thread_process – monkjack
Да, я стараюсь убирать и очищать свой код перед его отправкой во избежание хаоса/путаницы. – Laurent