Exemplo n.º 1
0
 public override void Start()
 {
     if (HostSocket == null)
     {
         throw new InvalidOperationException("尚未设置监听端口信息。");
     }
     HostSocket.LingerState = new LingerOption(false, 1);
     HostSocket.Listen(2048);
     HostSocket.BeginAccept(AcceptClient, HostSocket);
     StartDateTime = DateTime.Now;
     ConnectionCheckTimer.Enabled = true;
     Status = ServiceHostStatus.Running;
 }
Exemplo n.º 2
0
 public override void Close()
 {
     if (Status == ServiceHostStatus.Stopped)
     {
         throw new InvalidOperationException("服务已经关闭。");
     }
     Status = ServiceHostStatus.Stopped;
     HostSocket.Close();
     HostSocket.Dispose();
     ConnectionCheckTimer.Enabled = false;
     while (ActiveClients.Count > 0)
     {
         var client = (SocketActiveClient)ActiveClients[0];
         client.Close();
     }
     ActiveClients.Clear();
     HostSocket = null;
 }