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 }; }
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; }
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); }
//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]; }
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); }
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); }