コード例 #1
0
        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);
        }
コード例 #2
0
        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);
        }