Socket完整传输模式

This commit is contained in:
milimoe 2023-12-29 01:21:31 +08:00
parent 9e64b854aa
commit 61df1f9293
Signed by: milimoe
GPG Key ID: 05D280912DA6C69E
2 changed files with 10 additions and 3 deletions

View File

@ -206,7 +206,7 @@ bool GetGameModeList()
bool Connect(ClientSocket socket, Guid token, string clientip, ref bool isDebugMode) 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) if (read.SocketType == SocketMessageType.Connect)
{ {

View File

@ -74,7 +74,14 @@ namespace Milimoe.FunGame.Server.Model
// 禁止GameModeServer调用 // 禁止GameModeServer调用
if ((IServerModel)this is GameModeServer) throw new NotSupportedException("请勿在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; SocketMessageType type = SocketObject.SocketType;
Guid token = SocketObject.Token; Guid token = SocketObject.Token;
object[] args = SocketObject.Parameters; object[] args = SocketObject.Parameters;
@ -83,7 +90,7 @@ namespace Milimoe.FunGame.Server.Model
// 验证Token // 验证Token
if (type != SocketMessageType.HeartBeat && token != Token) if (type != SocketMessageType.HeartBeat && token != Token)
{ {
ServerHelper.WriteLine(GetClientName() + " 使用了非法方式传输消息,服务器拒绝回应 -> [" + SocketSet.GetTypeString(type) + "] "); ServerHelper.WriteLine(GetClientName() + " 使用了非法方式传输消息,服务器拒绝回应 -> [" + SocketSet.GetTypeString(type) + "]");
return false; return false;
} }