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;
     }
 }
Beispiel #3
0
 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;
     }
 }
Beispiel #4
0
        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);
     }
 }