From 61df1f9293bcd812731c02850c1032e0753a198a Mon Sep 17 00:00:00 2001 From: milimoe Date: Fri, 29 Dec 2023 01:21:31 +0800 Subject: [PATCH] =?UTF-8?q?Socket=E5=AE=8C=E6=95=B4=E4=BC=A0=E8=BE=93?= =?UTF-8?q?=E6=A8=A1=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- FunGame.Server/Main.cs | 2 +- FunGame.Server/Models/ServerModel.cs | 11 +++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/FunGame.Server/Main.cs b/FunGame.Server/Main.cs index a10074d..7be2c52 100644 --- a/FunGame.Server/Main.cs +++ b/FunGame.Server/Main.cs @@ -206,7 +206,7 @@ bool GetGameModeList() bool Connect(ClientSocket socket, Guid token, string clientip, ref bool isDebugMode) { // 接收客户端消息 - foreach (SocketObject read in socket.ReceiveArray()) + foreach (SocketObject read in socket.Receive()) { if (read.SocketType == SocketMessageType.Connect) { diff --git a/FunGame.Server/Models/ServerModel.cs b/FunGame.Server/Models/ServerModel.cs index 1348f2e..714e8e4 100644 --- a/FunGame.Server/Models/ServerModel.cs +++ b/FunGame.Server/Models/ServerModel.cs @@ -74,7 +74,14 @@ namespace Milimoe.FunGame.Server.Model // 禁止GameModeServer调用 if ((IServerModel)this is GameModeServer) throw new NotSupportedException("请勿在GameModeServer类中调用此方法"); - SocketObject SocketObject = socket.Receive(); + SocketObject[] SocketObjects = socket.Receive(); + if (SocketObjects.Length == 0) + { + ServerHelper.WriteLine(GetClientName() + " 发送了空信息。"); + return false; + } + SocketObject SocketObject = SocketObjects[0]; + SocketMessageType type = SocketObject.SocketType; Guid token = SocketObject.Token; object[] args = SocketObject.Parameters; @@ -83,7 +90,7 @@ namespace Milimoe.FunGame.Server.Model // 验证Token if (type != SocketMessageType.HeartBeat && token != Token) { - ServerHelper.WriteLine(GetClientName() + " 使用了非法方式传输消息,服务器拒绝回应 -> [" + SocketSet.GetTypeString(type) + "] "); + ServerHelper.WriteLine(GetClientName() + " 使用了非法方式传输消息,服务器拒绝回应 -> [" + SocketSet.GetTypeString(type) + "]"); return false; }