Example #1
0
        public void ServerSocket_OnClientConnect(object sender, AsyncUserToken e)
        {
            string      sRemoteAddress;
            TModuleInfo ModuleInfo = new TModuleInfo();

            sRemoteAddress = e.EndPoint.Address.ToString();
            DBShare.MainOutMessage("M2连接: " + e.EndPoint.ToString());
            if ((!DBShare.CheckServerIP(sRemoteAddress)))
            {
                DBShare.MainOutMessage("非法服务器连接: " + sRemoteAddress);
                e.Socket.Close();
                return;
            }
            if (!(THumDB.boDataDBReady && THumDB.boHumDBReady && DBShare.g_boStartService))
            {
                e.Socket.Close();
            }
            else
            {
                ModuleInfo.Module     = e;
                ModuleInfo.ModuleName = "游戏中心";
                ModuleInfo.Address    = string.Format("{0}:{1} → {2}:{3}", sRemoteAddress, e.EndPoint.Port, sRemoteAddress, 6000);// Format("%s:%d → %s:%d", new object[] {sRemoteAddress, Socket.RemotePort, sRemoteAddress, ServerSocket.Port});
                ModuleInfo.Buffer     = "0/0";
                ModuleInfo            = DBShare.AddModule(ModuleInfo);
            }
            TServerClient ClentSocket = new TServerClient(e, FrmIDSoc);

            e.Tag = new object[] { ClentSocket, ModuleInfo };
        }
Example #2
0
        private TFrmIDSoc FrmIDSoc    = null;              //会话管理

        /// <summary>
        /// 构造函数
        /// </summary>
        /// <param name="e"></param>
        /// <param name="FrmIDSoc"></param>
        public TServerClient(AsyncUserToken e, TFrmIDSoc FrmIDSoc)
        {
            m_dwKeepAliveTick      = GameFramework.HUtil32.GetTickCount();
            m_sReceiveText         = "";
            m_sQueryID             = "";
            m_Module               = null;
            m_dwCheckServerTimeMin = GameFramework.HUtil32.GetTickCount();
            m_dwCheckServerTimeMax = 0;
            m_dwCheckRecviceTick   = GameFramework.HUtil32.GetTickCount();
            Socket        = e;
            this.FrmIDSoc = FrmIDSoc;
        }
Example #3
0
        public static void UpdateModule(TModuleInfo ModuleInfo)
        {
            for (int I = 0; I < g_ModuleList.Count; I++)
            {
                if (g_ModuleList[I].Module == ModuleInfo.Module)
                {
                    g_ModuleList[I] = ModuleInfo;
                    return;
                }
            }

            //TModuleInfo Module = ModuleInfo;
            g_ModuleList.Add(ModuleInfo);
        }
Example #4
0
        //Display용 모듈 순서
        /// <summary>
        /// 초기화함수
        /// </summary>
        /// <returns>성공했는지 실패했는지 여부</returns>
        public bool Init()
        {
            // Load Motion & DIO devices //
            int nNumAxes = 0;

            if (Cmmsdk.cmmGnDeviceLoad((int)MotnDefines._TCmBool.cmTRUE, ref nNumAxes) != MotnDefines.cmERR_NONE)
            {
                Log.ShowMessage("Dio", "Comizoa Device Loading Error");
                return(false);
            }

            //Input 전체 채널 개수
            Cmmsdk.cmmAdvGetNumAvailDioChan((int)MotnDefines._TCmBool.cmTRUE, ref m_iMaxIn); //현재 사용 가능한 Input채널 갯수를 찾는다.(첫번째 인자가 False이면 Output)

            //Output 전체 채널 개수
            Cmmsdk.cmmAdvGetNumAvailDioChan((int)MotnDefines._TCmBool.cmFALSE, ref m_iMaxOut); //현재 사용 가능한 Input채널 갯수를 찾는다.(첫번째 인자가 False이면 Output)

            m_aModuleInfo         = new TModuleInfo();
            m_aModuleInfo.iCntIn  = m_iMaxIn;
            m_aModuleInfo.iCntOut = m_iMaxOut;

            return(true);

            //Input모듈 개수 찾는곳
            //for (int i = 0; i < m_iMaxIn; i++)
            //{
            //    //이거 안될수도 있음 확인해야함. 진섭.
            //    //해당 함수는 IsInputChannel  인자로 선택 된 Input 혹은 Output의 Axis 인자로 선택 된 채널의 장치 Instance를 반환합니다.
            //    //Instance는 같은 종류의 장치(ex SD404 2장)을 사용할 경우 각 장치를 구분하기 위한 숫자로 0번부터 시작합니다.
            //    Cmmsdk.cmmAdvGetDioDevInstance(i, (int)MotnDefines._TCmBool.cmTRUE, ref m_iInModuleCnt); //Axis: DevInstance를 확인할 채널
            //                                                                                          //IsInputChannel : input, output 선택( 1 : Input, 0 : Output)
            //                                                                                          //DevInstance: 선택 된 채널의 장치의 Instance
            //}

            //Output 모듈 개수 찾는곳
            //for (int o = 0; o < m_iMaxOut; o++)
            //{
            //    //이거 안될수도 있음 확인해야함. 진섭.
            //    //해당 함수는 IsInputChannel  인자로 선택 된 Input 혹은 Output의 Axis 인자로 선택 된 채널의 장치 Instance를 반환합니다.
            //    //Instance는 같은 종류의 장치(ex SD404 2장)을 사용할 경우 각 장치를 구분하기 위한 숫자로 0번부터 시작합니다.
            //    Cmmsdk.cmmAdvGetDioDevInstance(o, (int)MotnDefines._TCmBool.cmFALSE, ref m_iOutModuleCnt); //Axis: DevInstance를 확인할 채널
            //                                                                                          //IsInputChannel : input, output 선택( 1 : Input, 0 : Output)
            //                                                                                          //DevInstance: 선택 된 채널의 장치의 Instance
            //}

            //m_iModuleCnt = 0;
            //m_iModuleCnt = m_iInModuleCnt + m_iOutModuleCnt;
            //m_aModuleInfo = new TModuleInfo[m_iModuleCnt];
        }
Example #5
0
        private void IDSocket_OnConnected(object sender, NetFramework.DSCClientConnectedEventArgs e)
        {
            m_dwCheckServerTimeMin = HUtil32.GetTickCount();
            m_dwCheckServerTimeMax = 0;
            m_dwCheckRecviceTick   = HUtil32.GetTickCount();
            string sRemoteAddress = e.socket.RemoteEndPoint.ToString();// e.EndPoint.ToString();

            //开启心跳包
            KeepAliveTimer.Change(0, 3000);
            TModuleInfo ModuleInfo = new TModuleInfo();

            ModuleInfo.Module     = this;
            ModuleInfo.ModuleName = DBShare.g_sServerName;
            ModuleInfo.Address    = string.Format("%{0}:%{1} → %{2}:%{3}", sRemoteAddress, e.socket.LocalEndPoint.AddressFamily.ToString(), sRemoteAddress, e.socket.RemoteEndPoint.AddressFamily.ToString());
            ModuleInfo.Buffer     = "0/0";
            m_Module = DBShare.AddModule(ModuleInfo);
        }
Example #6
0
        public static TModuleInfo AddModule(TModuleInfo ModuleInfo)
        {
            TModuleInfo result;
            int         I;
            TModuleInfo Module;

            result = null;
            for (I = 0; I < g_ModuleList.Count; I++)
            {
                if (((g_ModuleList[I]) as TModuleInfo).Module == ModuleInfo.Module)
                {
                    result = ((g_ModuleList[I]) as TModuleInfo);
                    return(result);
                }
            }
            Module = new TModuleInfo();
            Module = ModuleInfo;
            g_ModuleList.Add(Module);
            result = Module;
            return(result);
        }