From b913f58f137aa20a85f1a4ed42b2bbee62066018 Mon Sep 17 00:00:00 2001 From: SikongJueluo Date: Sun, 13 Jul 2025 10:53:23 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20udpServer=E4=BD=BF=E7=94=A8=E5=BC=82?= =?UTF-8?q?=E6=AD=A5=E5=A4=84=E7=90=86=E6=95=B0=E6=8D=AE=E5=8C=85?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/src/UdpServer.cs | 22 ++++++++++++---------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/server/src/UdpServer.cs b/server/src/UdpServer.cs index b4daab0..0075d4f 100644 --- a/server/src/UdpServer.cs +++ b/server/src/UdpServer.cs @@ -287,21 +287,23 @@ public class UDPServer var remoteEP = new IPEndPoint(IPAddress.Any, listenPort); byte[] bytes = listener.EndReceive(res, ref remoteEP); + // 提前开始接收下一个包 + listener.BeginReceive(new AsyncCallback(ReceiveHandler), null); + // Handle RemoteEP if (remoteEP is null) { - // logger.Debug($"Receive Data from Unknown at {DateTime.Now.ToString()}:"); - // logger.Debug($" Original Data : {BitConverter.ToString(bytes).Replace("-", " ")}"); - goto BEGIN_RECEIVE; + logger.Debug($"Receive Data from Unknown at {DateTime.Now.ToString()}:"); + logger.Debug($" Original Data : {BitConverter.ToString(bytes).Replace("-", " ")}"); + return; } - - // Handle Package - var udpData = RecordUDPData(bytes, remoteEP, Convert.ToInt32(bytes[1])); - PrintData(udpData); - - BEGIN_RECEIVE: - listener.BeginReceive(new AsyncCallback(ReceiveHandler), null); + // 异步处理数据包 + Task.Run(() => + { + var udpData = RecordUDPData(bytes, remoteEP, Convert.ToInt32(bytes[1])); + PrintData(udpData); + }); } private bool SendBytes(IPEndPoint endPoint, byte[] buf)