0

请帮助我了解如何在 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);
4

1 回答 1

1

正在发生的事情是读取正在阻塞并等待更多数据在流上发送,它将继续这样做,直到流关闭或发送更多数据。

您需要使用非阻塞读取,在读取上设置超时,或者在完成发送数据后关闭流服务器端。

于 2013-12-17T09:51:53.310 回答