Exemplo n.º 1
0
        public NetUnit(int bufferSize = 1024, int port = 11000)
        {
            try
            {
                allDone         = new ManualResetEvent(false);
                this.bufferSize = bufferSize;

                IPHostEntry ipHostInfo    = Dns.GetHostEntry(Dns.GetHostName());
                IPAddress   ipAddress     = ipHostInfo.AddressList[0];
                IPEndPoint  localEndPoint = new IPEndPoint(ipAddress, port);

                mySocket = new Socket(ipAddress.AddressFamily,
                                      SocketType.Stream, ProtocolType.Tcp);

                mySocket.Bind(localEndPoint);
                mySocket.Listen(200);

                connectionManager = new ConnectionManager();

                logger.Info("Server started!");

                new Thread(Listen).Start();
            }
            catch (Exception exception)
            {
                logger.Error(exception);
            }
        }
Exemplo n.º 2
0
        public void Start(int bufferSize, int port = 11000)
        {
            try
            {
                _logger     = new ULogger();
                _bufferSize = bufferSize;
                _allDone    = new ManualResetEvent(false);


                IPHostEntry ipHostInfo    = Dns.GetHostEntry(Dns.GetHostName());
                IPAddress   ipAddress     = ipHostInfo.AddressList[0];
                IPEndPoint  localEndPoint = new IPEndPoint(ipAddress, port);

                Socket listener = new Socket(ipAddress.AddressFamily,
                                             SocketType.Stream, ProtocolType.Tcp);

                listener.Bind(localEndPoint);
                listener.Listen(200);

                _serverIsRunning = true;
                _logger.Info("Server started!");

                while (true)
                {
                    _allDone.Reset();

                    _logger.Info("Waiting for connection...");

                    listener.BeginAccept(new AsyncCallback(AcceptCallback), listener);

                    _allDone.WaitOne();
                }
            }
            catch (Exception exception)
            {
                _logger.Error(exception);
                throw exception;
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// 创建服务管理器对象。构建服务查询表并自启动所有未被禁用的服务。
        /// </summary>
        ///
        /// <author>Nianchen Deng</author>
        public _ServiceManager()
        {
            // 获取所有服务实例并根据executeOrder从小到大排序
            _allServices = Object.FindObjectsOfType <_Service> ().ToList();
            if (_allServices.Any(service => service.executeOrder < 0))
            {
                ULogger.Error("Some services have missing dependencies!");
                _allServices.Clear();
                Framework.Quit();
                return;
            }
            _allServices.Sort((s1, s2) => s1.executeOrder - s2.executeOrder);

            // 构建映射表
            foreach (var service in _allServices)
            {
                if (!_serviceList.TryGetValue(service.GetType(), out var subList))
                {
                    _serviceList.Add(service.GetType(),
                                     subList = new Dictionary <string, _Service> ());
                }
                subList.Add(service.name, service);
            }
        }
Exemplo n.º 4
0
 public void EditorError(object message)
 {
     innerLogger.Error(message);
 }