Ejemplo n.º 1
0
        /// <summary>
        /// 删除注册TCP服务端
        /// </summary>
        /// <param name="server"></param>
        internal void RemoveRegister(IServer server)
        {
#if NoAutoCSer
            throw new Exception();
#else
            if (server.TcpRegisterInfo != null)
            {
                Monitor.Enter(registerLock);
                try
                {
                    if (server.TcpRegisterInfo != null)
                    {
                        servers.RemoveToEnd(server);
                        if (registerClient.removeRegister(clientId.Tick, server.TcpRegisterInfo).Type == AutoCSer.Net.TcpServer.ReturnType.Success)
                        {
                            server.TcpRegisterInfo = null;
                        }
                    }
                }
                catch (Exception error)
                {
                    server.AddLog(error);
                }
                finally { Monitor.Exit(registerLock); }
            }
#endif
        }
Ejemplo n.º 2
0
        /// <summary>
        /// 注册TCP服务端
        /// </summary>
        /// <param name="server"></param>
        /// <returns>是否注册成功</returns>
        internal bool Register(IServer server)
        {
#if NoAutoCSer
            throw new Exception();
#else
            ServerInfo serverInfo = server.CreateServerInfo();
            serverInfo.ClientIndex    = clientId.Index;
            serverInfo.ClientIdentity = clientId.Identity;
            Monitor.Enter(registerLock);
            try
            {
                servers.Add(server);
                long tick = clientId.Tick;
                if (registerClient.register(tick, serverInfo).Value)
                {
                    server.TcpRegisterInfo  = serverInfo;
                    serverInfo.RegisterTick = tick;
                    return(true);
                }
            }
            catch (Exception error)
            {
                server.AddLog(error);
            }
            finally { Monitor.Exit(registerLock); }
#endif
            return(false);
        }
Ejemplo n.º 3
0
        /// <summary>
        /// 删除注册TCP服务端
        /// </summary>
        /// <param name="server"></param>
        internal void RemoveRegister(IServer server)
        {
#if NoAutoCSer
            throw new Exception();
#else
            ServerLog log = server.CreateServerLog(LogType.RemoveServer);
            Monitor.Enter(registerLock);
            try
            {
                servers.Remove(server);
                registerClient.appendLog(log);
            }
            catch (Exception error)
            {
                server.AddLog(error);
            }
            finally { Monitor.Exit(registerLock); }
#endif
        }
Ejemplo n.º 4
0
        /// <summary>
        /// 注册TCP服务端
        /// </summary>
        /// <param name="server"></param>
        /// <returns>是否注册成功</returns>
        internal bool Register(IServer server)
        {
#if NoAutoCSer
            throw new Exception();
#else
            ServerLog serverInfo = server.CreateServerLog(LogType.RegisterServer);
            Monitor.Enter(registerLock);
            try
            {
                servers.Add(server);
                if (registerClient.appendLog(serverInfo).Value)
                {
                    return(true);
                }
            }
            catch (Exception error)
            {
                server.AddLog(error);
            }
            finally { Monitor.Exit(registerLock); }
#endif
            return(false);
        }