2015-07-09 2 views
0

У меня есть следующий код на стороне сервера:Бесконечный цикл при чтении из сокета

InputStream in = socket.getInputStream(); 
int x; 
while(true) { 
     x = in.read(); 
     if(x < 0) break; 
     System.out.print((char)x); 
} 

Клиент правильно подключен и отправляет некоторую строку на сервер. Но цикл while работает вечно. Как определить, когда достигнут конец входного потока.

+0

@Achyutu try x> 0 –

+0

Можете ли вы показать нам, что такое выход? – dotvav

+1

Какой тип 'x'? – dasblinkenlight

ответ

0

Попробуйте это:

while((x = in.read()) >= 0) System.out.println((char)x);

in.read() возвращает считанные байты из потока. Если байт не читается, метод возвращает -1.

+1

Как это отличается от того, что у них уже есть? И почему '0' недействителен? – weston

+0

0 действительно, мой плохой. – Mackiavelli

+0

это не будет работать для сокетов, лучше исходного кода, это не ответ –

Смежные вопросы