From cdf20a4525a2ff9f6fe2c1e9b69fa2854c5848fd Mon Sep 17 00:00:00 2001 From: zxx <Zxx@HanInfo> Date: 星期二, 27 五月 2025 17:17:03 +0800 Subject: [PATCH] 巨石 --- HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/device/TcpServer.cs | 35 ++++++++++++++++++++++++++++++++--- 1 files changed, 32 insertions(+), 3 deletions(-) diff --git a/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/device/TcpServer.cs b/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/device/TcpServer.cs index b9e7040..f4885fd 100644 --- a/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/device/TcpServer.cs +++ b/HH.WCS.Mobox3/HH.WCS.Mobox3.JuShi/device/TcpServer.cs @@ -1,4 +1,5 @@ -锘縰sing System; +锘縰sing Newtonsoft.Json; +using System; using System.Collections.Generic; using System.Linq; using System.Net; @@ -22,6 +23,7 @@ socket.Listen(30); //寮�鎺ュ彈瀹㈡埛绔繛鎺ヨ姹� socket.BeginAccept(new AsyncCallback(ClientAccepted), socket); + //Console.ReadLine(); } catch (Exception e) { Console.WriteLine(e.Message); @@ -30,7 +32,11 @@ public static Dictionary<string, Socket> clients = new Dictionary<string, Socket>(); public static Dictionary<string, byte[]> buffers = new Dictionary<string, byte[]>(); public static void ClientAccepted(IAsyncResult ar) { + //try + //{ + + Console.WriteLine("ClientAccepted================"); var socket = ar.AsyncState as Socket; var client = socket.EndAccept(ar); string remote_ip = ((System.Net.IPEndPoint)client.RemoteEndPoint).Address.ToString(); @@ -55,11 +61,19 @@ } //鍑嗗鎺ュ彈涓嬩竴涓鎴风璇锋眰 socket.BeginAccept(new AsyncCallback(ClientAccepted), socket); + + + //} + //catch (Exception ex) + //{ + // Console.WriteLine($"ClientAccepted 寮傚父: {ex.ToString()}"); + //} } public static void ReceiveMessage(IAsyncResult ar) { try { + //Console.WriteLine("ReceiveMessage================"); var socket = ar.AsyncState as Socket; string remote_ip = ((System.Net.IPEndPoint)socket.RemoteEndPoint).Address.ToString(); var length = socket.EndReceive(ar); @@ -80,9 +94,12 @@ if (buffers.Keys.Contains(remote_ip)) { //璇诲彇鍑烘潵娑堟伅鍐呭 var message = GetHexString(buffers[remote_ip], length);//16 10 - Console.WriteLine(message); + Console.WriteLine($"ReceiveMessage鎺ユ敹淇″彿锛歿message}"); + LogHelper.Info($"ReceiveMessage鎺ユ敹淇″彿锛歿message}"); + //Console.WriteLine(message); //3A 00 01 00 01 05 73 00 02 01 01 B8 - if (message.Substring(0, 2) == "3A") { + //鎸夐挳鐩�+ if (message.Substring(0, 2) == "3a") { //鏄剧ず娑堟伅 if (length != 24) { message = message.Substring(0, 24); @@ -90,6 +107,18 @@ PlcHelper.Receive(remote_ip, message); Array.Clear(buffers[remote_ip], 0, buffers[remote_ip].Length);//娓呯┖褰撳墠IP Buffer } + //3F 00 10 20 30 40 50 60 0D 0A + //瀹夊叏浜や簰 + else if (message.Substring(0, 4) == "3f00") + { + //鏄剧ず娑堟伅 + if (length != 20) + { + message = message.Substring(0, 20); + } + PlcHelper.Receive(remote_ip, message); + Array.Clear(buffers[remote_ip], 0, buffers[remote_ip].Length);//娓呯┖褰撳墠IP Buffer + } else { Console.WriteLine($"銆怲CP淇℃伅鍗忚寮傚父銆戯細IP锛歿remote_ip},MSG锛歿message}"); } -- Gitblit v1.9.1