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