⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 listener.java

📁 java局域网聊天室
💻 JAVA
字号:
package chatnew;
import java.net.*;
import java.awt.List;
import java.io.*;
import java.util.StringTokenizer;
/**
 * <p>Title: </p>
 *
 * <p>Description: </p>
 *
 * <p>Copyright: Copyright (c) 2005</p>
 *
 * <p>Company: </p>
 *
 * @author not attributable
 * @version 1.0
 */
public class Listener extends Thread {
    BufferedReader br;
    List onlineUsersList,chatContentList;
    boolean isClosed=false;

    //文件传输用:
    FileSender fileSender;
    FileReceiver fileReceiver;
    public Listener(BufferedReader br,List onLineUsersList,List chatContentList) {
        this.br=br;
        this.onlineUsersList=onLineUsersList;
        this.chatContentList=chatContentList;

        this.start();
    }

    public void run(){
        String word=null;
        try {
            //循环接收服务器端发送来的信息
            while (!isClosed && (word = br.readLine()) != null) {
                //判断其是否是更新在线用户列表的信息
                //已修改。由NICKNAME开头,不再有以ONLINEUSERS开头的消息
                if(word.startsWith("NICKNAME:")){
                    word=word.substring(9);
                    ChatTookit.updateOnLineUsersList(onlineUsersList,word);

                }
                //得到服务器端相应过来的目标用户的ip地址
                else if(word.startsWith("FILEECHO:")){
                    word=word.substring(9);
                    this.fileSender.setDescIP(word);
                }
                //得到服务器端传送来的文件传送完毕的相应
                else if(word.startsWith("FILEFINISH:")){
                    word=word.substring(11);
                    this.fileReceiver.setOver(true);
                    this.chatContentList.add(word+"给你发送的文件传输完毕");
                    this.chatContentList.select(this.chatContentList.getItemCount()-1);
                }
                else{
                    //否则就将其打到交谈信息里,并让交谈信息可以自动滚动到最新位置
                    this.chatContentList.add(word);
                    this.chatContentList.select(this.chatContentList.getItemCount()-1);
                }
            }
        } catch (IOException ex) {
            System.out.println("客户端监听已关闭!");
        }
    }

    public void destroy(){
        try {
            isClosed=true;
        } catch (Exception ex) {
        }
    }
    public void setFileSender(FileSender fs){
        this.fileSender=fs;
    }
    public void setFileReceiver(FileReceiver fr){
        this.fileReceiver=fr;
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -