From be8fed995ccd12425c9b186065230ab117b14341 Mon Sep 17 00:00:00 2001 From: SikongJueluo Date: Tue, 15 Jul 2025 14:26:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BD=BF=E7=94=A8=E6=8E=92=E5=BA=8F?= =?UTF-8?q?=E6=9D=A5=E8=A7=A3=E5=86=B3=E6=97=B6=E9=97=B4=E5=86=B2=E7=AA=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/UdpServer.cs | 25 +++++++++++++------------ 1 file changed, 13 insertions(+), 12 deletions(-) diff --git a/server/src/UdpServer.cs b/server/src/UdpServer.cs index 3f4e915..6a53141 100644 --- a/server/src/UdpServer.cs +++ b/server/src/UdpServer.cs @@ -351,19 +351,16 @@ public class UDPServer // 异步锁保护 udpData await Task.Run(() => { - lock (udpData) + // Handle RemoteEP + if (endPoint is null) { - // Handle RemoteEP - if (endPoint is null) - { - logger.Debug($"Receive Data from Unknown at {DateTime.Now.ToString()}:"); - logger.Debug($" Original Data : {BitConverter.ToString(data).Replace("-", " ")}"); - return; - } - - var udpDataObj = RecordUDPData(data, endPoint, time, Convert.ToInt32(data[1])); - PrintData(udpDataObj); + logger.Debug($"Receive Data from Unknown at {DateTime.Now.ToString()}:"); + logger.Debug($" Original Data : {BitConverter.ToString(data).Replace("-", " ")}"); + return; } + + var udpDataObj = RecordUDPData(data, endPoint, time, Convert.ToInt32(data[1])); + PrintData(udpDataObj); }); } @@ -385,7 +382,11 @@ public class UDPServer var dataQueue = udpData.GetOrAdd(key, _ => new ConcurrentQueue()); dataQueue.Enqueue(data); - logger.Debug($"Test dataQueue.Count = {dataQueue.Count}"); + // 对队列进行一次按时间排序 + var sorted = dataQueue.OrderBy(d => d.DateTime).ToList(); + udpData.TryUpdate(key, new ConcurrentQueue(sorted), dataQueue); + + logger.Debug($"Test dataQueue.Count = {udpData[key].Count}"); return data; }