请帮我解决如何在java中读取数据流的问题。我的要求是将telnet连接到路由器。这部分完成了。从路由器,必须通过telnet使用其IP地址和端口号连接到xxx远程计算机。在建立此连接时,我得到了一些回应。但是在读取时,程序控件在InputStream类的read()方法处停止。以下是我用来读取数据流的代码片段。
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);
答案 0 :(得分:1)
正在发生的事情是读取阻塞并等待在流上发送更多数据,它将继续执行此操作,直到流关闭或发送更多数据。
您需要使用非阻塞读取,在读取时设置超时,或在完成发送数据后关闭流服务器端。