From 75c5becc5cbf2d00c77082bdbe9bc6a08703ffb1 Mon Sep 17 00:00:00 2001 From: duhe <226547893@qq.com> Date: 星期二, 23 七月 2024 14:09:23 +0800 Subject: [PATCH] 条码自动生成:断线重连 --- WarM/条码打印/Gy_BarCodeBill_automaticallyByPLC_New.cs | 96 +++++++++++++++++++++++++++++++++++++++++++++++- 1 files changed, 94 insertions(+), 2 deletions(-) diff --git "a/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_automaticallyByPLC_New.cs" "b/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_automaticallyByPLC_New.cs" index c29c99c..9c6f7e7 100644 --- "a/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_automaticallyByPLC_New.cs" +++ "b/WarM/\346\235\241\347\240\201\346\211\223\345\215\260/Gy_BarCodeBill_automaticallyByPLC_New.cs" @@ -13,6 +13,7 @@ using System.Drawing.Printing; using System.IO; using System.Management; +using System.Net.NetworkInformation; namespace WarM { @@ -1066,6 +1067,8 @@ Thread thread = new Thread(ReceiveMess); thread.Start(); MessageBox.Show("杩炴帴鎴愬姛锛�"); + + timer3.Enabled = true; } catch (Exception ex) { @@ -1099,8 +1102,8 @@ } catch (Exception ex) { - MessageBox.Show("鎺ュ彛寮傚父锛屽凡鍏抽棴杩炴帴锛�" + ex.Message); - socket.Close(); + //MessageBox.Show("鎺ュ彛寮傚父锛屽凡鍏抽棴杩炴帴锛�" + ex.Message); + //socket.Close(); } } @@ -1253,6 +1256,10 @@ catch (Exception ex) { MessageBox.Show(ex.Message); + } + finally + { + timer3.Enabled = false; } } #endregion @@ -2360,5 +2367,90 @@ } } + + + + #region 鏂嚎閲嶈繛 + private int maxRepeatConnectTimes = 5; + private int currentRepeatConnectTimes = 0; + + #region 瀹氭椂鍣ㄦ娴嬭繛鎺ョ姸鎬併�佹柇绾块噸杩� + private void timer3_Tick(object sender, EventArgs e) + { + if (currentRepeatConnectTimes < maxRepeatConnectTimes) + { + //鍒ゆ柇瀹㈡埛绔槸鍚﹀彲浠ヨ闂湇鍔″櫒锛岃嫢涓嶅彲浠ヨ闂紝鍏抽棴socket杩炴帴 + if (!getTargetInternetStatus()) + { + if (socket != null && socket.Connected) + { + socket.Close(); + } + + currentRepeatConnectTimes += 1; + } + else if (getTargetInternetStatus() && !socket.Connected) + { + //鑻ュ鎴风鍙互璁块棶鏈嶅姟鍣紝socket閲嶆柊杩炴帴鏈嶅姟鍣� + try + { + socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); + IPAddress iPAddress = IPAddress.Parse(textBox_IPParams.Text); + IPEndPoint point = new IPEndPoint(iPAddress, Convert.ToInt32(textBox_PortParams.Text)); + socket.Connect(point); + + Thread thread = new Thread(ReceiveMess); + thread.Start(); + + currentRepeatConnectTimes = 0; + } + catch (Exception ex) + { + currentRepeatConnectTimes += 1; + } + } + } + else + { + timer1.Enabled = false; + currentRepeatConnectTimes = 0; + MessageBox.Show("杩炴帴宸叉柇寮�锛岃閲嶆柊杩炴帴锛�!"); + } + } + #endregion + + #region 鑾峰彇鐩爣璁惧缃戠粶杩炴帴鐘舵�� + private bool getTargetInternetStatus() + { + try + { + string targetIp = textBox_IPParams.Text; // 鏇挎崲涓虹洰鏍囩數鑴戠殑IP鍦板潃 + Ping pingSender = new Ping(); + PingOptions options = new PingOptions(); + // 浣跨敤64瀛楄妭鐨勬暟鎹寘锛屸�屼綘鍙互鏍规嵁闇�瑕佽皟鏁磋繖涓�� + string data = "Hello from Ping!"; + byte[] buffer = Encoding.ASCII.GetBytes(data); + int timeout = 1200; // 瓒呮椂鏃堕棿锛屸�屽崟浣嶄负姣 + PingReply reply = pingSender.Send(targetIp, timeout, buffer, options); + + if (reply.Status == IPStatus.Success) + { + return true; + } + else + { + return false; + } + } + catch (Exception ex) + { + return false; + } + + } + #endregion + #endregion + + } } \ No newline at end of file -- Gitblit v1.9.1