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 SByte RegLogServer(string ListenIp, UInt16 ListenPort, ulong id, Iocp.NetConnection connect) { if (mLogServer != null) { Iocp.TcpConnect conn = mLogServer.Connect as Iocp.TcpConnect; if (conn != null) {//Log服务器是唯一的,起来一个就要把另外一个踢下线 conn.Disconnect(); } } mLogServer = new ServerFrame.NetEndPoint(ListenIp, ListenPort); mLogServer.Connect = connect; mLogServer.Id = id; return(1); }
public UInt16 RegComServer(string ListenIp, ulong id, Iocp.NetConnection connect) { ServerInfo si = connect.m_BindData as ServerInfo; si.Id = id; si.Ip = ListenIp; si.LinkNumber = 0; mComServer = new ServerFrame.NetEndPoint(ListenIp, si.Port); mComServer.Connect = connect; mComServer.Id = id; Log.Log.Server.Print("Com服务器{0}注册,{1}:{2}", id, ListenIp, si.Port); return(si.Port); }
public void RegGateServer(string ip, UInt16 port, ulong id, Iocp.NetConnection connect) { ServerFrame.NetEndPoint nep = new ServerFrame.NetEndPoint(ip, port); nep.Id = id; nep.Connect = connect; ServerFrame.NetEndPoint oldnep; if (mGateServers.TryGetValue(connect, out oldnep) == true) { mGateServers[connect] = nep; } else { mGateServers.Add(connect, nep); } }
public SByte RegDataServer(string ListenIp, UInt16 ListenPort, ulong id, Iocp.NetConnection connect) { if (mDataServer != null) { Iocp.TcpConnect conn = mDataServer.Connect as Iocp.TcpConnect; if (conn != null) {//数据服务器是唯一的,起来一个就要把另外一个踢下线 conn.Disconnect(); } } mDataServer = new ServerFrame.NetEndPoint(ListenIp, ListenPort); mDataServer.Connect = connect; mDataServer.Id = id; Log.Log.Server.Print("Data服务器{0}注册,{1}:{2}", id, ListenIp, ListenPort); return(1); }