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

📄 operationcenter.cs

📁 .Net实现的局域网完整IM,含完整的设计远隔
💻 CS
📖 第 1 页 / 共 3 页
字号:
                    t_MType = t_BReader.ReadChar();

                    if (t_MType == MESSAGE_TYPE_REQUESTFRIEND)
                    {
                        //In:
                        //UID,NICKNAME
                        int t_UID;
                        string t_NickName;

                        t_UID = t_BReader.ReadInt32();
                        t_NickName = t_BReader.ReadString();

                        if (EstimateMessage(t_NickName + "(" + t_UID + ")" + global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSG_WANTTOBEFRIEND, global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSGT_ADDFRIEND) == frmMessage.MR_YES)
                        {
                            _bWriter.Write(MESSAGE_TYPE_AGEEBEFRIEND);
                            _bWriter.Write(t_UID);
                            _bWriter.Write(t_NickName);
                            _bWriter.Flush();
                        }
                    }
                    else if (t_MType == MESSAGE_TYPE_AGEEBEFRIEND)
                    {
                        icUser t_User = new icUser();
                        ///In:
                        ///FLD_UID,FLD_NICKNAME
                        ///FLD_HEADPIC,FLD_MYSHOW,FLD_SEX,FLD_BIRTHDAY
                        ///FLD_BEWRITE,FLD_OPENTIME,FLD_LASTTIME,FLD_LASTIP
                        t_User._uID = t_BReader.ReadInt32();
                        t_User._nickName = t_BReader.ReadString();
                        t_User._headPic = t_BReader.ReadInt32();
                        t_User._myShow = t_BReader.ReadInt32();
                        t_User._sex = t_BReader.ReadInt32();
                        t_User._birthDay = t_BReader.ReadString();
                        t_User._bewrite = t_BReader.ReadString();
                        t_User._openTime = t_BReader.ReadString();
                        t_User._lastTime = t_BReader.ReadString();
                        t_User._lastIP = t_BReader.ReadString();

                        int t_n, t_c;

                        t_c = _FriendList.Count;
                        for (t_n = 0; t_n < t_c; t_c++)
                        {
                            if (((icUser)_FriendList[t_n])._uID == t_User._uID)
                            {
                                break;
                            }
                        }
                        if (t_n == t_c)
                        {
                            _FriendList.Add(t_User);
                        }

                        SureMessage(t_User._nickName + "(" + t_User._uID + ")" + global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSG_BEFRIEND, global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSGT_ADDFRIEND);
                    }
                    else if (t_MType == MESSAGE_TYPE_MESSAGE)
                    {
                        int t_n, t_c;
                        frmTalk t_frmT;
                        icMessage t_Msg = new icMessage();

                        t_Msg._UID = t_BReader.ReadInt32();
                        t_Msg._Message = t_BReader.ReadString();

                        _MsgBuffer.Add(t_Msg);

                        t_c = _TalkFormList.Count;
                        for (t_n = 0; t_n < t_c; t_n++)
                        {
                            t_frmT = (frmTalk)_TalkFormList[t_n];
                            if (t_frmT._HisUID == t_Msg._UID)
                            {
                                if (t_Msg._Message.Length > 0)
                                {
                                    t_frmT.AddMessage(t_Msg._Message);
                                }
                                break;
                            }
                        }

                        if( t_n==t_c && _keepAlarm == false)
                        {
                            new Thread(new ThreadStart(thdfunMsgAlarmer)).Start();
                        }
                    }
                    else if (t_MType == MESSAGE_TYPE_COMMAND)
                    {
                        char t_CType;

                        t_CType = t_BReader.ReadChar();

                        if (t_CType == MSGCMD_TYPE_MESSAGE)
                        {
                            SureMessage(t_BReader.ReadString(), global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSGT_SYSMESSAGE);
                        }
                    }
                    t_BReader.Close();
                    t_BWriter.Close();
                    t_NStream.Close();
                    t_socSession.Close();
                }
            }
            catch (Exception e)
            {
                SureMessage(e.Message, global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSGT_FAILOPERATE);
            }
        }

        static void thdfunMsgListener()
        {
            try
            {
                while (_keepListen)
                {
                    _tempSession = _socListener.AcceptSocket();
                    if (_keepAnswer == true)
                    {
                        new Thread(new ThreadStart(thdfunSession)).Start();
                    }
                }
            }
            catch (Exception e)
            {
                throw e;
            }
        }

        /// <summary>
        /// Listener function
        /// </summary>

        static void StartListener()
        {
            try
            {
                if (_thdMsgListener != null)
                {
                    _thdMsgListener.Abort();
                    _thdMsgListener = null;
                }
            }
            catch (Exception e)
            {
                SureMessage(e.Message, global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSGT_FAILOPERATE);
            }

            while (true)
            {
                try
                {
                    _socListener = new TcpListener(_my_Port);

                    _socListener.Start();
                    _thdMsgListener = new Thread(new ThreadStart(thdfunMsgListener));
                    _thdMsgListener.Start();
                    break;
                }
                catch (Exception e)
                {
                    _my_Port += 1;
                }
            }
        }

        public static void StopListener()
        {
            try
            {
                _keepListen = false;
                _keepAnswer = false;

                System.Net.Sockets.TcpClient t_socVLink = new TcpClient();
                t_socVLink.Connect(_my_Address, _my_Port);
                t_socVLink.Close();
                /*
                if (_thdMsgListener != null)
                {
                    _thdMsgListener.Abort();
                    _thdMsgListener = null;
                }
                 */
            }
            catch (Exception e)
            {
                System.Console.WriteLine(e.Message);
                //  SureMessage(e.Message, global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSGT_FAILOPERATE);
            }
        }

        /// <summary>
        /// Net currency function
        /// </summary>
        /// <returns></returns>
        public static bool LinkServer()
        {
            try
            {
                if (_socServerLink == null)
                {
                    _socServerLink = new TcpClient();

                    _socServerLink.Connect(_server_Address, _server_Port);

                    _bWriter = new BinaryWriter(_socServerLink.GetStream());
                    _bReader = new BinaryReader(_socServerLink.GetStream());
                }
                else if (_bWriter == null)
                {
                    _bWriter = new BinaryWriter(_socServerLink.GetStream());
                }
                else if (_bReader == null)
                {
                    _bReader = new BinaryReader(_socServerLink.GetStream());
                }
                return true;
            }
            catch (Exception e)
            {
                _socServerLink = null;
                System.Console.WriteLine(e.Message);
                //SureMessage(e.Message, global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSGT_EXCEPTION);
            }

            return false;
        }

        public static bool DisconnectServer()
        {
            try
            {
                if (_socServerLink != null)
                {
                    _bWriter.Write(MESSAGE_TYPE_EXIT);
                    _bReader.Close();
                    _bWriter.Close();
                    _socServerLink.Close();
                    return true;
                }

                return true;
            }
            catch (Exception e)
            {
                System.Console.Write(e.Message);
                //SureMessage(e.Message, global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSGT_EXCEPTION);
            }

            return false;
        }

        public static void RegisterNewUser(icUser NewUser)
        {
            try
            {
                if (LinkServer() == false)
                {
                    SureMessage(global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSG_FAILLINKSERVER, global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSGT_FAILOPERATE);
                    return;
                }

                _bWriter.Write(MESSAGE_TYPE_REGISTER);
                _bWriter.Write(NewUser._account);
                _bWriter.Write(NewUser._password);
                _bWriter.Write(NewUser._nickName);
                _bWriter.Write(NewUser._headPic);
                _bWriter.Write(NewUser._myShow);
                _bWriter.Write(NewUser._sex);
                _bWriter.Write(NewUser._birthDay);
                _bWriter.Write(NewUser._bewrite);
                _bWriter.Write(_my_Address);
                _bWriter.Write(_my_Port);
                _bWriter.Flush();

                if (_bReader.ReadChar() == 't')
                {
                    SureMessage(global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSG_COMREGISTER, global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSGT_COMOPERATE);
                }
                else
                {
                    SureMessage(global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSG_FAILREGISTER, global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSGT_FAILOPERATE);
                }
            }
            catch (Exception e)
            {
                SureMessage(e.Message, global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSGT_FAILOPERATE);//global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSG_SESSIONEXCEPTION, global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSGT_FAILOPERATE);
            }
        }

        public delegate void funMainDrawNowProgress(int NPro);
        public static bool UserLogin(string UAcc, string UPwd, funMainDrawNowProgress funDrawNowPro)
        {
            try
            {
                char t_R;

                if (LinkServer() == false)
                {
                    SureMessage(global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSG_FAILLINKSERVER, global::JPMLab_LanTalker_Client.Properties.Resources.STR_MSGT_FAILOPERATE);
                    return false;
                }

                funDrawNowPro(10);

                StartListener();

                funDrawNowPro(20);

                _bWriter.Write(MESSAGE_TYPE_LOGIN);
                _bWriter.Write(UAcc);
                _bWriter.Write(UPwd);
                _bWriter.Write(_my_Address);
                _bWriter.Write(_my_Port);

                _bWriter.Flush();

                t_R = _bReader.ReadChar();
                funDrawNowPro(30);
                if (t_R == LOGIN_RESULT_COMLETE)
                {
                    int t_c;

                    if (CurrentMe == null)
                    {
                        CurrentMe = new icUser();
                    }
                    //FLD_UID,FLD_ACCOUNT,FLD_PASSWORD
                    //FLD_NICKNAME,FLD_HEADPIC,FLD_MYSHOW
                    //FLD_SEX,FLD_BIRTHDAY,FLD_BEWRITE
                    //FLD_OPENTIME,FLD_LASTTIME,FLD_LASTIP
                    //FLD_LASTPORT
                    CurrentMe._uID = _bReader.ReadInt32();
                    CurrentMe._account = _bReader.ReadString();
                    CurrentMe._password = _bReader.ReadString();
                    CurrentMe._nickName = _bReader.ReadString();
                    CurrentMe._headPic = _bReader.ReadInt32();
                    CurrentMe._myShow = _bReader.ReadInt32();
                    CurrentMe._sex = _bReader.ReadInt32();
                    CurrentMe._birthDay = _bReader.ReadString();
                    CurrentMe._bewrite = _bReader.ReadString();
                    CurrentMe._openTime = _bReader.ReadString();
                    CurrentMe._lastTime = _bReader.ReadString();
                    CurrentMe._lastIP = _bReader.ReadString();
                    CurrentMe._lastPort = _bReader.ReadInt32();

                    _FriendList.Clear();
                    t_c = _bReader.ReadInt32();
                    if (t_c > 0)
                    {
                        int t_n;
                        icUser t_User;

                        for (t_n = 0; t_n < t_c; t_n++)
                        {
                            t_User = new icUser();
                            ///FLD_UID,FLD_NICKNAME
                            ///FLD_HEADPIC,FLD_MYSHOW,FLD_SEX,FLD_BIRTHDAY
                            ///FLD_BEWRITE,FLD_OPENTIME,FLD_LASTTIME,FLD_LASTIP

                            t_User._uID = _bReader.ReadInt32();
                            t_User._nickName = _bReader.ReadString();
                            t_User._headPic = _bReader.ReadInt32();
                            t_User._myShow = _bReader.ReadInt32();
                            t_User._sex = _bReader.ReadInt32();
                            t_User._birthDay = _bReader.ReadString();
                            t_User._bewrite = _bReader.ReadString();
                            t_User._openTime = _bReader.ReadString();
                            t_User._lastTime = _bReader.ReadString();
                            t_User._lastIP = _bReader.ReadString();

                            _FriendList.Add(t_User);
                        }
                    }

⌨️ 快捷键说明

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