Beispiel #1
0
        public void ClientConnected(Iocp.TcpConnect pConnect, Iocp.TcpServer pServer, byte[] pData, int nLength)
        {
            lock (mAllClientShortConnect)
            {
                if (pServer == this.mClientLoginSrv)
                {
                    pConnect.mLimitLevel = (int)RPC.RPCExecuteLimitLevel.Player;
                    foreach (Iocp.TcpConnect conn in mAllClientShortConnect)
                    {
                        if (conn == pConnect)
                        {
                            return;
                        }
                    }
                    var linkedInfo = new ClientLinkedInfo();
                    pConnect.m_BindData = linkedInfo;

                    mAllClientShortConnect.Add(pConnect);
                }
                else
                {
                    pConnect.Disconnect();
                }
            }
        }
Beispiel #2
0
        public void ServerDisConnected(Iocp.TcpConnect pConnect, Iocp.TcpServer pServer, byte[] pData, int nLength)
        {
            accountList.Clear();
            if (mGateServers.ContainsKey(pConnect))
            {
                mGateServers.Remove(pConnect);
                foreach (var i in this.PlayerManager.AccountDict)
                {
                    if (i.Value.Data2GateConnect == pConnect && (i.Value.CurPlayer == null || i.Value.CurPlayer.mPlanesConnect == null))
                    {
                        accountList.Add(i.Value);
                    }
                }

                foreach (var account in accountList)
                {
                    PlayerManager.ClearAccount(account);
                }
            }

            mPlanesMgr.OnPlanesSeverDisconnect(pConnect);
            mPlanesServers.Remove(pConnect);

            if (null == CloseThread)
            {
                CloseThread = new System.Threading.Thread(new System.Threading.ThreadStart(this.ThreadCloses));
                CloseThread.Start();
            }
        }
Beispiel #3
0
        public void ServerDisConnected(Iocp.TcpConnect pConnect, Iocp.TcpServer pServer, byte[] pData, int nLength)
        {
            lock (this)
            {
                mAllConnect.Remove(pConnect);
                if (mDataServer != null && pConnect == mDataServer.Connect)
                {
                    mDataServer = null;
                }
                if (mLogServer != null && pConnect == mLogServer.Connect)
                {
                    mLogServer = null;
                }
                if (mComServer != null && pConnect == mComServer.Connect)
                {
                    mComServer = null;
                }
                mGateServers.Remove(pConnect);
                mPlanesServers.Remove(pConnect);
                PathFindServers.Remove(pConnect);

                ServerInfo si = pConnect.m_BindData as ServerInfo;
                Log.Log.Server.Print("有服务器{0}断开连接,分配端口{1}", si.Id, si.Port);

                FreeServerPort(si);
            }
        }
Beispiel #4
0
 public void ServerConnected(Iocp.TcpConnect pConnect, Iocp.TcpServer pServer, byte[] pData, int nLength)
 {
     lock (this)
     {
         if (pServer == this.mTcpSrv)
         {
             ServerInfo si = AllocServerPort(pConnect.IpAddress, pConnect);
             pConnect.mLimitLevel = this.mTcpSrv.LimitLevel;
             pConnect.m_BindData  = si;
             Log.Log.Server.Print("有服务器{0}接入,分配端口{1}", si.Id, si.Port);
             foreach (Iocp.TcpConnect conn in mAllConnect)
             {
                 if (conn == pConnect)
                 {
                     return;
                 }
             }
             mAllConnect.Add(pConnect);
         }
         else
         {
             pConnect.Disconnect();
         }
     }
 }
Beispiel #5
0
 public void ClientDisConnected(Iocp.TcpConnect pConnect, Iocp.TcpServer pServer, byte[] pData, int nLength)
 {
     lock (mAllClientShortConnect)
     {
         pConnect.m_BindData = null;
         mAllClientShortConnect.Remove(pConnect);
     }
 }
Beispiel #6
0
 public void ServerDisConnected(Iocp.TcpConnect pConnect, Iocp.TcpServer pServer, byte[] pData, int nLength)
 {
 }
Beispiel #7
0
 public void ServerReceiveData(Iocp.TcpConnect pConnect, Iocp.TcpServer pServer, byte[] pData, int nLength)
 {
     ReceiveData(pConnect, pData, nLength);
 }
Beispiel #8
0
 void GateServerDisConnected(Iocp.TcpConnect pConnect, Iocp.TcpServer pServer, byte[] pData, int nLength)
 {
     mGateServers.Remove(pConnect);
 }