From ea0b1e8e5f43c5fd0a7d479e25ede3b8cbea464a Mon Sep 17 00:00:00 2001 From: wxr <wxr@hdlchina.com.cn> Date: 星期一, 02 十二月 2024 17:17:19 +0800 Subject: [PATCH] tcp;可视对讲; --- HDL_ON/DAL/DriverLayer/UdpSocket.cs | 39 +++++++++++++++++++++++++++------------ 1 files changed, 27 insertions(+), 12 deletions(-) diff --git a/HDL_ON/DAL/DriverLayer/UdpSocket.cs b/HDL_ON/DAL/DriverLayer/UdpSocket.cs index f6f9c40..6b1178d 100644 --- a/HDL_ON/DAL/DriverLayer/UdpSocket.cs +++ b/HDL_ON/DAL/DriverLayer/UdpSocket.cs @@ -1,6 +1,8 @@ 锘縰sing System; using System.Net.Sockets; using System.Net; +using Newtonsoft.Json; +using System.Text; namespace HDL_ON.DriverLayer { @@ -47,7 +49,8 @@ { busSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp); busSocket.EnableBroadcast = true; - }catch(Exception ex) + } + catch (Exception ex) { MainPage.Log("Socket 寮傚父 : " + ex.Message); } @@ -67,8 +70,6 @@ } asyncBeginReceive(); - - MainPage.Log($"udp port : {port}"); } /// <summary> @@ -141,8 +142,6 @@ /// </summary> private int relinkCount = 0; - - /// <summary> /// 寮傛鎺ユ敹鏁版嵁缁撴潫 /// </summary> @@ -167,17 +166,33 @@ packet.Bytes = new byte[len]; Array.Copy(bytes, 0, packet.Bytes, 0, packet.Bytes.Length); - //MainPage.Log($"鎺ユ敹{packet.RemoteEndPoint}鏁版嵁"); //mqtt杩炴帴鏁版嵁璇诲彇 A鍗忚缃戠粶璁惧淇℃伅璇诲彇鍥炲 澶勭悊 if (((IPEndPoint)packet.RemoteEndPoint).Port == 8585) { - Control.Ins.ConvertReceiveData(bytes, ((IPEndPoint)packet.RemoteEndPoint).Address.ToString()); + var receiveString = Encoding.UTF8.GetString(bytes); + var res = receiveString.Split("\r\n\r\n"); + string topic = ""; + if (res.Length == 2) + { + var topics = res[0].Split("\r\n"); + //MainPage.Log(res[1]); + foreach (var ts in topics) + { + var key = ts.Split(":"); + switch (key[0]) + { + case "Topic": + topic = key[1]; + break; + } + } + Control.Ins.ConvertReceiveData(bytes, ((IPEndPoint)packet.RemoteEndPoint).Address.ToString()); + } + else if (((IPEndPoint)packet.RemoteEndPoint).Port == 6000)//澶勭悊bus 6000绔彛鐨勬暟鎹� + { + packet.Manager(); + } } - else if (((IPEndPoint)packet.RemoteEndPoint).Port == 6000)//澶勭悊bus 6000绔彛鐨勬暟鎹� - { - packet.Manager(); - } - } catch (Exception ex) { -- Gitblit v1.8.0