public void Run() { serverSocket = null; clientSocket = null; try { ServiceLog.Info(string.Format("正在启动 Modbus RTU 数据采集服务[{0} {1}:{2}]", ServerID, server_ip, server_port)); IPEndPoint endPoint = new IPEndPoint(server_ip, server_port); serverSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); serverSocket.Bind(endPoint); serverSocket.Listen(10); ServiceLog.Info(string.Format("启动 Modbus RTU 数据采集服务[{0} {1}:{2}]成功,正在接收连接...", ServerID, server_ip, server_port)); } catch (Exception ex) { ServiceLog.Error(string.Format("启动 Modbus RTU 数据采集服务[{0} {1}:{2}]发生错误:{3}", ServerID, server_ip, server_port, ex.Message)); return; } while (true) { Thread.Sleep(100); clientSocket = AcceptConnection(); } }
private void ReconnectToServer() { try { ServiceLog.Info(string.Format("正在重新建立 Modbus TCP 数据采集连接[{0} {1}:{2}]", ServerID, server_ip, server_port)); clientSocket = AcceptConnection(); ServiceLog.Info(string.Format("重新建立 Modbus TCP 数据采集连接[{0} {1}:{2}]成功...", ServerID, server_ip, server_port)); } catch (Exception ex) { ServiceLog.Error(string.Format("重新建立 Modbus TCP 数据采集连接[{0} {1}:{2}]发生错误:{3}", ServerID, server_ip, server_port, ex.Message)); return; } }
public void Run() { try { ServiceLog.Info(string.Format("正在建立 Modbus TCP 数据采集连接[{0} {1}:{2}]", ServerID, server_ip, server_port)); clientSocket = ConnectToServer(); ServiceLog.Info(string.Format("建立 Modbus TCP 数据采集连接[{0} {1}:{2}]成功...", ServerID, server_ip, server_port)); HostContainer.AddModbusTcpClientHost(this); } catch (Exception ex) { ServiceLog.Error(string.Format("建立 Modbus TCP 数据采集连接[{0} {1}:{2}]发生错误:{3}", ServerID, server_ip, server_port, ex.Message)); return; } }
private void StartWCFServer() { //启动WCF服务 try { if (serviceHost != null) { serviceHost.Close(); serviceHost = null; } serviceHost = new ServiceHost(typeof(GDDST.DI.DataServiceWCF.DataService)); serviceHost.Open(); ServiceLog.Info(string.Format("启动WCF服务成功")); } catch (Exception ex) { ServiceLog.Fatal(string.Format("启动WCF服务时发生错误:", ex.Message)); } }
private Socket AcceptConnection() { if (clientSocket == null || !clientSocket.Connected) { try { clientSocket = serverSocket.Accept(); ServiceLog.Info(string.Format("数据采集服务[{0} {1}:{2}]接收到连接[{3}]", ServerID, server_ip, server_port, clientSocket.RemoteEndPoint)); HostContainer.AddTcpServerHost(this); clientSocketEndPointInfo = clientSocket.RemoteEndPoint.ToString(); return(clientSocket); } catch (Exception ex) { clientSocket = null; ServiceLog.Error(string.Format("数据采集服务[{0} {1}:{2}]接收连接发生错误:{3}", ServerID, server_ip, server_port, ex.Message)); return(null); } } else { return(clientSocket); } }