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(); } } }
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(); } }
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); } }
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(); } } }
public void ClientDisConnected(Iocp.TcpConnect pConnect, Iocp.TcpServer pServer, byte[] pData, int nLength) { lock (mAllClientShortConnect) { pConnect.m_BindData = null; mAllClientShortConnect.Remove(pConnect); } }
public void ServerDisConnected(Iocp.TcpConnect pConnect, Iocp.TcpServer pServer, byte[] pData, int nLength) { }
public void ServerReceiveData(Iocp.TcpConnect pConnect, Iocp.TcpServer pServer, byte[] pData, int nLength) { ReceiveData(pConnect, pData, nLength); }
void GateServerDisConnected(Iocp.TcpConnect pConnect, Iocp.TcpServer pServer, byte[] pData, int nLength) { mGateServers.Remove(pConnect); }