Java telnet被阻止/冻结

Java telnet被阻止/冻结,java,android,sockets,inputstream,telnet,Java,Android,Sockets,Inputstream,Telnet,我有个问题。我需要使用Java(具体来说是Android)通过Telnet连接到服务器,当我执行读取操作时,它工作正常,但在某一点上它被冻结了,如果可能的话,我想解决这个问题 代码如下: public String readString() throws IOException { InputStream in = new BufferedInputStream(telnet.getInputStream()); int read=0; String s=null; do {

我有个问题。我需要使用Java(具体来说是Android)通过Telnet连接到服务器,当我执行读取操作时,它工作正常,但在某一点上它被冻结了,如果可能的话,我想解决这个问题

代码如下:

public String readString() throws IOException
{
    InputStream in = new BufferedInputStream(telnet.getInputStream());

int read=0;

String s=null;
do
    {
    byte[] buffer = new byte[1024];
        read = in.read(buffer); **<-- It freezes here**
            if(read > 0)
            {
                if(s==null)s=new String(buffer, 0, read);
                else s+=new String(buffer, 0, read);
                Log.e("S",s);
            }
        }
        while (read !=-1);

    in.close();
    return s;
}
公共字符串readString()引发IOException
{
InputStream in=新的BufferedInputStream(telnet.getInputStream());
int read=0;
字符串s=null;
做
{
字节[]缓冲区=新字节[1024];
read=in.read(缓冲区);**0)
{
如果(s==null)s=新字符串(缓冲区,0,读取);
else s+=新字符串(缓冲区,0,读取);
Log.e(“S”,S);
}
}
while(读取!=-1);
in.close();
返回s;
}
顺便说一句:当我使用Eclipse调试器时,当我想查看var值时,它会保持阻塞状态,并说“没有挂起的线程”


PD:我使用ApacheComons库供参考。

请澄清“阅读操作它工作正常,但在某一点上被冻结”。你说它工作并且有一个无限循环?这里没有无限循环,read()方法在没有数据可读取时阻塞。根本不清楚您的实际问题是什么或您在问什么。它工作正常,因为它打印服务器响应,但它是错误的,因为在“read=in.read(buffer);”行,当它停止读取时,它变得像“blocked”。调试时,这是最后一个冻结点,不会引发异常。顺便说一句:我编辑了这个问题,以澄清到底发生了什么。它停止阅读,因为没有什么可读的。我不知道你期望它做什么,但它就是这样做的。问题是它被阻塞了。好的,它已经结束了阅读,但是它被冻结了。也许是服务器,在我发送命令之前,它的连接是打开的。。。