protected override void SendInitData() { long tCurMilSec = TimeUtils.utcTime; CSToSS.AskRegisteRet aAskRegisteRet = new CSToSS.AskRegisteRet(); aAskRegisteRet.Ret = ( int )ErrorCode.Success; aAskRegisteRet.Time = tCurMilSec; aAskRegisteRet.Basegsid = ( int )CS.instance.csKernelCfg.un32GSBaseIdx; for (uint i = 0; i < CS.instance.csKernelCfg.un32MaxGSNum; i++) { CSToSS.AskRegisteRet.Types.GSInfo pGSInfo = new CSToSS.AskRegisteRet.Types.GSInfo { Gsid = CS.instance.csKernelCfg.gsInfoList[i].m_n32GSID, Userpwd = CS.instance.csKernelCfg.gsInfoList[i].m_szUserPwd }; aAskRegisteRet.Gsinfo.Add(pGSInfo); } this.owner.SendMsgToSession(this.id, aAskRegisteRet, ( int )CSToSS.MsgId.EMsgToSsfromCsAskRegisteRet); ////////////////////////////////////////////////////////////////////////// CSSSInfo pcSSInfo = CS.instance.GetSSInfoByNSID(this.id); CSToGS.OneSSConnected sOneSSConnected = new CSToGS.OneSSConnected { State = ( int )ErrorCode.Success, Time = tCurMilSec, Ssid = pcSSInfo.m_n32SSID, Ip = pcSSInfo.m_sListenIP, Port = pcSSInfo.m_n32ListenPort, Netstate = ( int )pcSSInfo.m_eSSNetState, Basessid = ( int )CS.instance.csKernelCfg.un32SSBaseIdx }; CS.instance.BroadCastMsgToGS(sOneSSConnected, ( int )CSToGS.MsgID.EMsgToGsfromCsOneSsconnected); }
private ErrorCode MsgOneSSConnectedHandler(byte[] data, int offset, int size, int msgID) { offset += 2 * sizeof(int); size -= 2 * sizeof(int); CSToGS.OneSSConnected oneSsConnected = new CSToGS.OneSSConnected(); oneSsConnected.MergeFrom(data, offset, size); GSSSInfo pcSSInfo = GS.instance.gsStorage.GetSSInfo(oneSsConnected.Ssid); if (pcSSInfo != null) { pcSSInfo.listenIp = oneSsConnected.Ip.Replace("\0", string.Empty); pcSSInfo.listenPort = oneSsConnected.Port; if (pcSSInfo.ssNetState == ServerNetState.Closed) { pcSSInfo.ssNetState = ( ServerNetState )oneSsConnected.Netstate; pcSSInfo.nsID = 0; this.owner.CreateConnector(SessionType.ClientG2S, pcSSInfo.listenIp, pcSSInfo.listenPort, Consts.SOCKET_TYPE, Consts.PROTOCOL_TYPE, 10240, oneSsConnected.Ssid); } } return(ErrorCode.Success); }