From d72ca686a3e262693f8a6e45e747e8e8da43335b Mon Sep 17 00:00:00 2001
From: JLChen <551775569@qq.com>
Date: 星期二, 06 七月 2021 09:39:03 +0800
Subject: [PATCH] 2021-07-06 1.更新
---
HDL_ON/DAL/DriverLayer/UdpSocket.cs | 38 ++++++++++++++++++++++++--------------
1 files changed, 24 insertions(+), 14 deletions(-)
diff --git a/HDL_ON/DAL/DriverLayer/UdpSocket.cs b/HDL_ON/DAL/DriverLayer/UdpSocket.cs
index 2e6343a..ab3cb02 100644
--- a/HDL_ON/DAL/DriverLayer/UdpSocket.cs
+++ b/HDL_ON/DAL/DriverLayer/UdpSocket.cs
@@ -1,9 +1,8 @@
锘縰sing System;
using System.Net.Sockets;
using System.Net;
-using Newtonsoft.Json.Linq;
-namespace HDL_ON
+namespace HDL_ON.DriverLayer
{
public class UdpSocket
{
@@ -22,21 +21,35 @@
//鏈湴Socket
private Socket busSocket;
-
+ public int Port = 0;
/// <summary>
/// 鍚姩Socket鎺ユ敹鍜屽彂閫佸姛鑳�
/// </summary>
- public void Start ()
+ public void Start (int port = 0)
{
- if (IsRunning) {
- return;
+ if (IsRunning)
+ {
+ if (port == Port)
+ {
+ return;
+ }
+ else
+ {
+ busSocket.Close();
+ }
}
+ if (port != 0)
+ Port = port;
+ if (Port == 0)
+ return;
busSocket = new Socket (AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
busSocket.EnableBroadcast = true;
try {
- busSocket.Bind (new IPEndPoint (IPAddress.Any, 6000));
- busSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse("239.0.168.188")));
+ //busSocket.Bind (new IPEndPoint (IPAddress.Any, 6000));
+ busSocket.Bind(new IPEndPoint(IPAddress.Any, Port));
+
+ busSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse("239.0.168.188")));
}
catch{
busSocket = null;
@@ -45,7 +58,7 @@
asyncBeginReceive();
- MainPage.Log ($"udp port : 6000");
+ MainPage.Log ($"udp port : {port}");
}
/// <summary>
@@ -97,10 +110,6 @@
Console.WriteLine($"asyncBeginReceive {e.Message}");
}
}
- /// <summary>
- /// 鎼滅储缃戠粶璁惧瑙﹀彂鐨勫洖璋冧簨浠�
- /// </summary>
- public Action<string> SearchNetDeviceAction;
/// <summary>
/// 寮傛鎺ユ敹鏁版嵁缁撴潫
@@ -123,10 +132,11 @@
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)
{
- Common.A_Protocal_Common.apc.ConvertReceiveData(bytes);
+ Control.Ins.ConvertReceiveData(bytes);
}
else if(((IPEndPoint)packet.RemoteEndPoint).Port == 6000)//澶勭悊bus 6000绔彛鐨勬暟鎹�
{
--
Gitblit v1.8.0