예제 #1
0
        public override void UserMsgRead(ParsePack dp)
        {
            string  time = dp.getString();
            int     s    = dp.getInt();
            MsgEnum me   = (MsgEnum)s;

            switch (me)
            {
            case MsgEnum.DesktopImg:
                if (MainWindow.instances.ControlDic.ContainsKey(bc))
                {
                    int wid = dp.getInt();
                    int hig = dp.getInt();
                    int len = dp.getInt();
                    MainWindow.instances.ControlDic[bc].RushDesktopImg(dp.getBytes(len));
                }
                break;

            case MsgEnum.ComputerName:
                string n = dp.getString();
                if (MainWindow.instances.ClientNameDic.ContainsKey(bc) == false)
                {
                    MainWindow.instances.ClientNameDic.Add(bc, n);
                    MainWindow.instances.RushClientList();
                }
                break;

            default:
                break;
            }
        }
예제 #2
0
        public override void UserMsgRead(ParsePack dp)
        {
            string  time = dp.getString();
            MsgEnum me   = (MsgEnum)dp.getInt();

            switch (me)
            {
            case MsgEnum.DesktopImg:
                ClientManger.instaces.HandleDesktopImg();
                break;

            case MsgEnum.MouseClick:
                ClientManger.instaces.HandleMouseClick(dp);
                break;

            case MsgEnum.MouseMove:
                ClientManger.instaces.HnadleMouseMove(dp);
                break;

            case MsgEnum.SendFiles:
                ClientManger.instaces.HandleFile(dp);
                break;

            case MsgEnum.KeyBoard:
                ClientManger.instaces.HandleKeyBD(dp);
                break;

            case MsgEnum.SpeKeyBoard:
                ClientManger.instaces.HandleSpeBD(dp);
                break;
            }
        }
예제 #3
0
        public void HandleFile(ParsePack dp)
        {
            lock (bc)
            {
                string full  = dp.getString();
                int    start = dp.getInt();
                int    end   = dp.getInt();
                int    len   = dp.getInt();
                int    l2    = dp.getInt();
                byte[] msg   = dp.getBytes(l2);

                if (start == 0)
                {
                    string dir = Environment.GetFolderPath(Environment.SpecialFolder.DesktopDirectory);
                    fs = new FileStream(Path.Combine(dir, full), FileMode.OpenOrCreate);
                }
                fs.Write(msg, 0, msg.Length);
                if (end == len)
                {
                    fs.Dispose();
                    fs.Close();
                    fs = null;
                }
            }
        }
예제 #4
0
        /// <summary>
        /// 系统消息处理
        /// </summary>
        /// <param name="red"></param>
        public void SystemMsgRead(ParsePack dp)
        {
            string            s   = dp.getString();
            SystemMessageType smt = (SystemMessageType)dp.getInt();

            switch (smt)
            {
            case SystemMessageType.HeartBeat:
                bc.ReceiveHeart(s);
                break;
            }
        }