コード例 #1
0
        public void ReloadClient()
        {
            try
            {
                if (this.client != null)
                {
                    using (var obj = this.client) obj.Disconnect();
                }
            }
            catch (Exception) { /*斷線例外不處理?*/ }



            this.client           = new CtkTcpClient();
            this.client.LocalUri  = this.LocalUri;
            this.client.RemoteUri = this.RemoteUri;

            this.client.EhFirstConnect += (sender, e) =>
            {
                var ea = e as CtkNonStopTcpStateEventArgs;
                //this.ActiveWorkClient = ea.workClient;
                this.OnFirstConnect(e);
            };
            this.client.EhFailConnect  += (sender, e) => this.OnFailConnect(e);
            this.client.EhDisconnect   += (sender, e) => this.OnDisconnect(e);
            this.client.EhDataReceive  += (sender, e) => this.OnDataReceive(e);
            this.client.EhErrorReceive += (sender, e) => this.OnErrorReceive(e);

            this.client.IntervalTimeOfConnectCheck = this.IntervalTimeOfConnectCheck;
        }
コード例 #2
0
ファイル: UtModbus.cs プロジェクト: YuYuanLiu/CwTech
        public void TestMethod()
        {
            var nonStopTcpClient = new CtkTcpClient("127.0.0.1", 502);

            nonStopTcpClient.EhDataReceive += (ss, ee) =>
            {
                var ea        = ee as CtkNonStopTcpStateEventArgs;
                var ctkBuffer = ea.TrxMessageBuffer;
                System.Diagnostics.Debug.WriteLine(ctkBuffer.Length);
            };
            nonStopTcpClient.NonStopRunAsyn();


            System.Threading.Thread.Sleep(1000);

            var msg = new CToolkit.v1_1.Modbus.CtkModbusMessage();

            msg.funcCode   = CToolkit.v1_1.Modbus.CtkModbusMessage.fctReadHoldingRegister;
            msg.unitId     = 1;
            msg.readLength = 32;
            var buffer = msg.ToRequestBytes();


            nonStopTcpClient.WriteMsg(buffer);


            while (true)
            {
                System.Threading.Thread.Sleep(1000);
            }
        }
コード例 #3
0
        public void RunAsyn()
        {
            client = new CtkTcpClient("127.0.0.1", 10002);
            client.EhFirstConnect += (ss, ee) => { CtkLog.InfoNs(this, "evtFirstConnect"); };
            client.EhFailConnect  += (ss, ee) => { CtkLog.InfoNs(this, "evtFailConnect"); };
            client.EhErrorReceive += (ss, ee) => { CtkLog.InfoNs(this, "evtErrorReceive"); };
            client.EhDataReceive  += (ss, ee) =>
            {
                CtkLog.InfoNs(this, "evtDataReceive");
            };

            client.NonStopRunStart();
        }
コード例 #4
0
 public void Disconnect()
 {
     if (this.client != null)
     {
         this.client.Disconnect(); this.client.Dispose(); this.client = null;
     }
     if (this.listener != null)
     {
         this.listener.Disconnect(); this.listener.Dispose(); this.listener = null;
     }
     if (this.mreHasMsg != null)
     {
         this.mreHasMsg.Dispose();
     }
 }
コード例 #5
0
        public void RunAsyn()
        {
            client = new CtkTcpClient("127.0.0.1", 5003);
            client.EhFirstConnect += (ss, ee) => { Write("evtFirstConnect"); };
            client.EhFailConnect  += (ss, ee) =>
            {
                var sb = new StringBuilder();
                sb.Append("evtFailConnect: ");
                sb.Append(ee.Exception.StackTrace);
                Write(sb.ToString());
            };
            client.EhErrorReceive += (ss, ee) => { Write("evtErrorReceive"); };
            client.EhDataReceive  += (ss, ee) =>
            {
                var ea        = ee as CtkNonStopTcpStateEventArgs;
                var ctkBuffer = ea.TrxMessageBuffer;
                this.Write(ctkBuffer.GetString());
            };

            client.NonStopRunAsyn();
        }