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

📄 msgdaemonprocessor.java

📁 局域网聊天工具,学习java桌面应用程序的好例子,(代传)
💻 JAVA
字号:
/* * To change this template, choose Tools | Templates * and open the template in the editor. */package ipmsg.network;import ipmsg.etc.Command;import ipmsg.etc.FileLinkList;import ipmsg.etc.GlobalConstant;import ipmsg.etc.GlobalVar;import ipmsg.gui.GetRecFiles;import ipmsg.gui.UtilityGui;import java.net.DatagramSocket;import java.net.SocketException;/** * * @author qqiu */public class MsgDaemonProcessor extends Thread{    private InterfaceFreshUsers_Start fresh;    public MsgDaemonProcessor(InterfaceFreshUsers_Start fresh){        this.fresh=fresh;        try {            UtilityNet.msgSocket =                    new DatagramSocket(GlobalConstant.IPMSG_DEFAULT_PORT);        } catch (SocketException ex) {        }    }        @Override    public void run(){        int MOOD,OPT,tmpPlace;        Command tmpCom,com;        try {            while (true) {                GlobalVar.COMMAND_QUEUE_fULL.acquire();                com = GlobalVar.popCommand();                GlobalVar.COMMAND_QUEUE_EMPTY.release();                //                System.out.println("processor"+com.getIp());                                MOOD = GlobalConstant.GET_MODE(com.getFlag());                OPT = GlobalConstant.GET_OPT(com.getFlag());                if ((OPT & GlobalConstant.IPMSG_SENDCHECKOPT) != 0) {                    tmpCom = new Command(GlobalConstant.IPMSG_RECVMSG);                    tmpCom.setAdditional("" + com.getPacketNo());                    tmpCom.setIp(com.getIp());                    UtilityNet.sendUdpPacket(tmpCom);                }                switch (MOOD) {                    //收到消息                    case GlobalConstant.IPMSG_SENDMSG:                        tmpPlace=com.getAdditional().indexOf(0);                        if (tmpPlace > 0)                            UtilityGui.newWindow(com.getIp(),                                    com.getAdditional().substring(0, tmpPlace),                                    com.getIp());                        if ((OPT & GlobalConstant.IPMSG_FILEATTACHOPT)!=0){                            FileLinkList TMP = FileLinkList.createFileLinkList(                                    com.getAdditional().substring(tmpPlace+1),                                    com.getIp(),                                    com.getPacketNo());                            if(TMP!=null)new GetRecFiles(TMP).setVisible(true);//                            TMP.show();                        }                                                break;                    case GlobalConstant.IPMSG_ANSENTRY:                    case GlobalConstant.IPMSG_BR_ABSENCE:                        if((tmpPlace=com.getAdditional().indexOf(0))==-1)                            GlobalVar.addUser(com.getIp(),                                     com.getAdditional(),null,                                    com.getSenderHost());                        else GlobalVar.addUser(com.getIp(),                                 com.getAdditional().substring(0, tmpPlace)                                ,com.getAdditional().substring(tmpPlace+1),                                com.getSenderHost());                        this.fresh.refreshUsers();                        break;                    case GlobalConstant.IPMSG_BR_ENTRY:                        tmpCom = new Command(GlobalConstant.IPMSG_ANSENTRY);                        tmpCom.setAdditional(GlobalVar.USER_NAME+'\0'+"LanMsg");                        tmpCom.setIp(com.getIp());                        UtilityNet.sendUdpPacket(tmpCom);                                                /*if((tmpPlace=com.getAdditional().indexOf(0))==-1)                            GlobalVar.addUser(com.getIp(), com.getAdditional());                        else GlobalVar.addUser(com.getIp(),                                 com.getAdditional().substring(0, tmpPlace));*/                                                if((tmpPlace=com.getAdditional().indexOf(0))==-1)                            GlobalVar.addUser(com.getIp(),                                     com.getAdditional(),null,                                    com.getSenderHost());                        else GlobalVar.addUser(com.getIp(),                                 com.getAdditional().substring(0, tmpPlace)                                ,com.getAdditional().substring(tmpPlace+1),                                com.getSenderHost());                        this.fresh.refreshUsers();                        break;                    case GlobalConstant.IPMSG_BR_EXIT:                        GlobalVar.delUser(com.getIp());                        this.fresh.refreshUsers();                        break;                    case GlobalConstant.IPMSG_RECVMSG:                        System.out.println("消息回复报文");                        break;                    case GlobalConstant.IPMSG_NOOPERATION:                        System.out.println("空报文");                        break;                    case GlobalConstant.IPMSG_RELEASEFILES:                        GlobalVar.delFileList(com.getAdditional().trim());                        break;                    default:{                        System.out.println("其他报文");//                        System.out.println(MOOD+" "+OPT);                    }                                    }            }        } catch (InterruptedException ex) {        }            }}

⌨️ 快捷键说明

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