Ejemplo n.º 1
0
 /// <summary>
 /// 启动服务
 /// </summary>
 public bool Start()
 {
     try
     {
         //服务器配置和服务器状态判断
         if (_config == null || State == ServerStateEnum.NotInitialized)
         {
             State = ServerStateEnum.NotInitialized;
         }
         _sessionTable          = new Dictionary <string, AppSession>(); //客户端会话连接Session
         _threadlist            = new List <Thread>();                   //线程池
         processor              = new Thread(new ThreadStart(OnStart));  //新建一个处理线程
         processor.IsBackground = true;                                  //线程启动
         processor.Start();                                              //线程开始准备就绪
         //客户端心跳处理判断
         daemonthread = new DaemonThread(this);
         State        = ServerStateEnum.Running;
         return(true);
     }
     catch (Exception ex)
     {
         State = ServerStateEnum.NotStarted;
         return(false);
     }
 }
Ejemplo n.º 2
0
        /// <summary>
        ///  创建监听的Socket
        /// </summary>
        /// <param name="ip">服务ip </param>
        /// <param name="port">服务端口号</param>
        public void Start(string ip = "0.0.0.0", int port = 6099)
        {
            Init(m_receiveBufferSize);
            IPEndPoint localEndPoint = new IPEndPoint(IPAddress.Parse(ip), port);

            listenSocket = new Socket(localEndPoint.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
            listenSocket.Bind(localEndPoint);
            listenSocket.Listen(NnumConnections);
            // LogService.Instance.InfoFormatted("Start listen socket {0} success", localEndPoint.ToString());
            StartAccept(null);
            m_daemonThread = new DaemonThread(this);//开启守护线程
        }