就是下面的类,为什么会出现死循环,急求答案,急急急!上代码,我正在做QQ聊天项目
package org.xinbo.bqq.thed.queueThread;
import java.io.IOException;
import java.io.ObjectInputStream;
import java.net.Socket;
import org.xinbo.bqq.common.pojo.User;
public class CallThread extends Thread{
private Socket so=null;
public CallThread(Socket so)
{
this.so=so;
}
public void run()
{
ObjectInputStream obin = null;
try {
obin = new ObjectInputStream(so.getInputStream());
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
}
int count=0;
while(true)
{
if(so!=null)
{
try {
count++;
User umssage=(User)obin.readObject();
System.out.println("读取客户端的信息为 :"+umssage.getUid());
System.out.println(count);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
}
if(so!=null) 这里有问题,
类初始化时
public CallThread(Socket so)
{
this.so=so;
}
这个构造方法被调用了所以上面的那句判断永远为true
######理论上 User umssage=(User)obin.readObject(); 一直能读到数据,不抛异常的话。你这个一直会跑下去。版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。