Ejemplo n.º 1
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);
            }
        }
Ejemplo n.º 2
0
 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);
 }
Ejemplo n.º 3
0
        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);
        }
Ejemplo n.º 4
0
        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);
            }
        }
Ejemplo n.º 5
0
        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);
        }