开发者社区> 问答> 正文

求各位大神看看下边的代码:报错

就是下面的类,为什么会出现死循环,急求答案,急急急!上代码,我正在做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();
  }
  
   }
  }
  
 }
}
 


 

 

展开
收起
kun坤 2020-06-07 12:24:49 713 0
1 条回答
写回答
取消 提交回答
  • if(so!=null) 这里有问题,

    类初始化时

    public CallThread(Socket so)
       {
        this.so=so;  
       }

    这个构造方法被调用了所以上面的那句判断永远为true

    ######理论上 User umssage=(User)obin.readObject(); 一直能读到数据,不抛异常的话。你这个一直会跑下去。
    2020-06-07 12:24:55
    赞同 展开评论 打赏
问答地址:
问答排行榜
最热
最新

相关电子书

更多
《0代码搭应用》 立即下载
不止代码 立即下载
《15分钟打造你自己的小程序》 立即下载