• 手机版

    扫码体验手机版

  • 微信公众号

    扫码关注公众号

国内首家协议开发

软芯音视解码保护平台

在线
客服

发布
需求

在线
聊天

天盟
APP

天盟APP下载

关注
微信

微信扫一扫访问
顶部

求大神帮忙!!!关于java问题

ChatHandler.javapackage pro4;import java.net.*;import java.io.*;import java.util.*;public class ChatHandler implements Runnable{    protected Socket socket;    protected ObjectInputStream dataIn;    protected ObjectOutputStream dataOut;    protected Thread listener;    protected static Vector handlers=new Vector();         private boolean keepListening=true;    public ChatHandler(Socket socket){        this.socket=socket;    }    public synchronized void start(){        if(listener==null){            try{                dataIn=new ObjectInputStream(socket.getInputStream());                dataOut=new ObjectOutputStream(socket.getOutputStream());                listener=new Thread(this);                listener.start();            }catch(IOException ioException){                ioException.printStackTrace();            }        }    }    public synchronized void stop(){        if(listener!=null){            try{                if(listener!=Thread.currentThread())                    listener.interrupt();                listener=null;                dataOut.close();                socket.close();            }catch(IOException ignored){                             }        }    }    public void run(){        String message="";        try{            handlers.addElement(this);            while(keepListening){                message=(String)dataIn.readObject();                if(message.equals("DISCONNECT")){                    dataOut.writeObject(message);                    dataOut.flush();                    stopListening();                }else                    broadcast(message);            }        }catch(ClassNotFoundException classNotFoundException){                     }catch(EOFException ignored){                     }catch(IOException ex){            if(listener==Thread.currentThread())                ex.printStackTrace();        }finally{            handlers.removeElement(this);        }        try{            dataIn.close();        }catch(IOException ioException){            ioException.printStackTrace();        }        stop();    }    protected void broadcast(String message){        synchronized (handlers){            Enumeration enumer=handlers.elements();            while(enumer.hasMoreElements()){                ChatHandler handler=(ChatHandler)enumer.nextElement();                try{                    handler.dataOut.writeObject(message);                    handler.dataOut.flush();                }catch(IOException ex){                    handler.stop();                }                          }        }    }    public void stopListening(){        keepListening=false;    }}可以解释一下run()方法和broadcast()方法吗?看不懂,,,

免责声明:本内容仅代表回答会员见解不代表天盟观点,请谨慎对待。

版权声明:作者保留权利,不代表天盟立场。

使用道具 举报

发新帖

发布任务需求已有1031167位用户正在使用天盟网服务

发布分类: *
任务预算: *
需求内容: *
手机号码: *
任务商家报价为
  • 预算价 :
  • 成交价 :
  • 完工期 :
  • 质保期 :

* 最终任务项目以服务商报价、双方协商为准!