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; }
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; }