Пожалуйста, помогите мне узнать, как читать поток данных в java. Мое требование - подключить telnet к маршрутизатору. Эта часть выполнена. От маршрутизатора, нужно подключиться к удаленной машине xxx, используя свой IP-адрес и номер порта через telnet. Выполняя эту связь, я получаю некоторый ответ. Но при чтении программный контроль останавливается на методе read() класса InputStream. Вот фрагмент кода, который я использую для чтения потока данных.Как читать данные из datastream
buff = new byte[4*1024];
ret_read = 0;
do
{
ret_read = in.read(buff); // Program control gets hanged here. Once all the data are read...
if(ret_read > 0)
{
System.out.println(new String(buff,0,ret_read));
}
}while(ret_read > 0);
Его ждет еще несколько данных для чтения. Но в потоке данных нет. Итак, как выйти из метода read(). –
Вы можете использовать доступные(), чтобы увидеть, есть ли что-нибудь перед чтением или вы можете использовать неблокирующее соединение, такое как канал сокета: http://docs.oracle.com/javase/6/docs/api/java /nio/channels/SocketChannel.html –
Спасибо Тим. Но метод available() в классе InputStream всегда возвращает ноль. Поэтому я попытаюсь использовать неблокирующее соединение для read() –