From af1cb3ecd0f4b0589e00b28f7f9edccf39e6e12b Mon Sep 17 00:00:00 2001
From: wxr <464027401@qq.com>
Date: 星期四, 10 九月 2020 16:15:11 +0800
Subject: [PATCH] 202009101
---
HDL_ON/DriverLayer/BusSocket.cs | 36 +++++++++++++++++++++++++-----------
1 files changed, 25 insertions(+), 11 deletions(-)
diff --git a/HDL_ON/DriverLayer/BusSocket.cs b/HDL_ON/DriverLayer/BusSocket.cs
index e8b346c..c41e235 100644
--- a/HDL_ON/DriverLayer/BusSocket.cs
+++ b/HDL_ON/DriverLayer/BusSocket.cs
@@ -1,6 +1,7 @@
锘縰sing System;
using System.Net.Sockets;
using System.Net;
+using HDL_ON.DAL.Net;
//using HDL_ON.UI;
namespace HDL_ON
@@ -33,7 +34,10 @@
busSocket.EnableBroadcast = true;
try {
busSocket.Bind (new IPEndPoint (IPAddress.Any, port));
- }catch{
+
+ busSocket.SetSocketOption(SocketOptionLevel.IP, SocketOptionName.AddMembership, new MulticastOption(IPAddress.Parse("224.0.168.188")));
+ }
+ catch{
busSocket = null;
return;
}
@@ -88,17 +92,14 @@
}
try {
-
Packet packet = new Packet ();
-
busSocket.BeginReceiveFrom (packet.Bytes, 0, packet.Bytes.Length, SocketFlags.None, ref packet.RemoteEndPoint, new AsyncCallback (asyncEndReceive), packet);
-
}
catch (Exception e) {
System.Threading.Thread.Sleep (1);
asyncBeginReceive ();
+ Console.WriteLine($"asyncBeginReceive {e.Message}");
}
-
}
/// <summary>
@@ -107,7 +108,6 @@
/// <param name="iar"></param>
private static void asyncEndReceive(IAsyncResult iar)
{
-
if (!IsRunning)
{
return;
@@ -115,17 +115,31 @@
try
{
- asyncBeginReceive ();
-
+ asyncBeginReceive();
Packet packet = (Packet)iar.AsyncState;
-
int len = busSocket.EndReceiveFrom(iar, ref packet.RemoteEndPoint);
+
byte[] bytes = packet.Bytes;
packet.Bytes = new byte[len];
- System.Array.Copy(bytes, 0, packet.Bytes, 0, packet.Bytes.Length);
+ Array.Copy(bytes, 0, packet.Bytes, 0, packet.Bytes.Length);
+
+ //mqtt杩炴帴鏁版嵁璇诲彇
+ if (packet.RemoteEndPoint.ToString() == "172.16.2.237:6688")
+ {
+ //var reString = DAL.CommonPage.MyEncodingUTF8.GetString(bytes);
+ //var jt = Newtonsoft.Json.JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JObject>(reString);
+ //var gateway_objects = jt.GetValue("objects").ToString();
+ //var jt2 = Newtonsoft.Json.JsonConvert.DeserializeObject<Newtonsoft.Json.Linq.JObject>(gateway_objects);
+ //MqttCommon.mqttClientIP = jt2.GetValue("gateway_ip").ToString();
+ //MqttCommon.mqttGatewayMAC = jt2.GetValue("board_id").ToString();
+ }
+
packet.Manager();
}
- catch { }
+ catch (Exception ex)
+ {
+ MainPage.Log($"寮傛鎺ユ敹鏁版嵁缁撴潫 {ex.Message},{((Packet)iar.AsyncState).Bytes}");
+ }
}
/// <summary>
--
Gitblit v1.8.0