public void CloseService() { Thread.Sleep(500); if (_tcpListener != null) { _tcpListener.Stop(); _tcpListener = null; } if (_listenThread != null) { _listenThread.Abort(); _listenThread.Join(); _listenThread = null; } if (_scanClient != null) { _scanClient.DisConnected(); _scanClient = null; } if (_checkStatusThread != null) { _checkStatusThread.Abort(); _checkStatusThread.Join(); _checkStatusThread = null; } if (_listenScanThread != null) { _listenScanThread.Abort(); _listenScanThread.Join(); _listenScanThread = null; } ConnectState = false; _eqItem.btnEQ.BackColor = Color.Red; _eqItem.启动服务ToolStripMenuItem.Enabled = true; _eqItem.停止服务ToolStripMenuItem.Enabled = false; _eqItem.EQMessage.Text = @"Service Stoped."; }
public virtual void StartService() { if (_listenThread == null) { #region lableView客户端建立监听 if (ModuleInfo.EqType == "1") { IPAddress[] ip = Dns.GetHostAddresses(Dns.GetHostName()); foreach (IPAddress ipAddress in ip) { if (ipAddress.AddressFamily == AddressFamily.InterNetwork) { _serverIp = ipAddress; } } if (_serverIp != null && ModuleInfo.PortNumber != null) { _listenThread = new Thread(ListenForLableViewClients); _listenThread.Start(); _eqItem.btnEQ.BackColor = Color.Orange; _eqItem.EQMessage.Text = @"Listening..."; _eqItem.停止服务ToolStripMenuItem.Enabled = true; _eqItem.启动服务ToolStripMenuItem.Enabled = false; ConnectState = true; } } #endregion #region 自动扫描仪客户端建立监听 if (ModuleInfo.EqType == "2") { if (ModuleInfo == null || ModuleInfo.ClientIp == "") { return; } _scanClient = new ScanSokect(ModuleInfo.ClientIp, 9003, 9004); _listenScanThread = new Thread(ListenForScanClientsConnectState); _listenScanThread.Start(); if (Module.KepController != null) { Module.KepController.KepHelper.DatachangeEvent += new TLAgent.OpcLibrary.OpcHelper.DataChange(KepHelper_DatachangeEvent); } } #endregion #region 采集器客户端监听 else { IPAddress[] ip = Dns.GetHostAddresses(Dns.GetHostName()); foreach (IPAddress ipAddress in ip) { if (ipAddress.AddressFamily == AddressFamily.InterNetwork) { _serverIp = ipAddress; } } if (_serverIp != null && ModuleInfo.PortNumber != null) { _tcpListener = new TcpListener(_serverIp, Convert.ToInt32(ModuleInfo.PortNumber)); _listenThread = new Thread(ListenForPadClients); _listenThread.Start(); _eqItem.btnEQ.BackColor = Color.Orange; _eqItem.EQMessage.Text = @"Listening..."; _eqItem.停止服务ToolStripMenuItem.Enabled = true; _eqItem.启动服务ToolStripMenuItem.Enabled = false; ConnectState = true; if (Module.KepController != null) { Module.KepController.KepHelper.DatachangeEvent += new TLAgent.OpcLibrary.OpcHelper.DataChange(KepHelper_DatachangeEvent); } } } #endregion } }