This commit is contained in:
Mili 2023-01-05 22:43:19 +08:00
parent 57ce67fbbb
commit 4098bfc265
2 changed files with 20 additions and 15 deletions

View File

@ -7,6 +7,7 @@ using Milimoe.FunGame.Server.Others;
using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Api.Utility;
using Milimoe.FunGame.Core.Library.Common.Network; using Milimoe.FunGame.Core.Library.Common.Network;
using Milimoe.FunGame.Core.Entity;
Console.Title = Config.SERVER_NAME; Console.Title = Config.SERVER_NAME;
Console.WriteLine(FunGameEnum.GetInfo((FunGameEnum.FunGame)Config.FunGameType)); Console.WriteLine(FunGameEnum.GetInfo((FunGameEnum.FunGame)Config.FunGameType));
@ -99,28 +100,29 @@ void StartServer()
while (Running) while (Running)
{ {
ClientSocket socket; ClientSocket socket;
string clientIPaddress = ""; string ClientIPAddress = "";
try try
{ {
socket = ListeningSocket.Accept(); socket = ListeningSocket.Accept();
ServerHelper.WriteLine("客户端" + socket.ClientIP + "连接 . . ."); ClientIPAddress = socket.ClientIP;
if (Read(socket, clientIPaddress) && Send(socket, clientIPaddress)) ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientIPAddress) + " 正在连接服务器 . . .");
if (Read(socket) && Send(socket))
{ {
ServerModel cs = new(socket, Running); ServerModel ClientModel = new(socket, Running);
Task t = Task.Factory.StartNew(() => Task t = Task.Factory.StartNew(() =>
{ {
cs.Start(); ClientModel.Start();
}); });
cs.Task = t; ClientModel.Task = t;
cs.ClientName = clientIPaddress; ClientModel.ClientName = ClientIPAddress;
if (!Config.OnlineClients.ContainsKey(clientIPaddress)) Config.OnlineClients.Add(clientIPaddress, clientIPaddress); if (!Config.OnlineClients.ContainsKey(ClientIPAddress)) Config.OnlineClients.Add(ClientIPAddress, ClientIPAddress);
} }
else else
ServerHelper.WriteLine("客户端" + clientIPaddress + "连接失败。"); ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientIPAddress) + " 连接失败。");
} }
catch (Exception e) catch (Exception e)
{ {
ServerHelper.WriteLine("客户端" + clientIPaddress + "断开连接!"); ServerHelper.WriteLine(SocketHelper.MakeClientName(ClientIPAddress) + " 断开连接!");
ServerHelper.Error(e); ServerHelper.Error(e);
} }
} }
@ -149,7 +151,7 @@ void StartServer()
}); });
} }
bool Read(ClientSocket socket, string name) bool Read(ClientSocket socket)
{ {
// 接收客户端消息 // 接收客户端消息
byte[] buffer = new byte[2048]; byte[] buffer = new byte[2048];
@ -158,14 +160,17 @@ bool Read(ClientSocket socket, string name)
object[] objs = (object[])read[1]; object[] objs = (object[])read[1];
if (type != SocketMessageType.Unknown) if (type != SocketMessageType.Unknown)
{ {
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + SocketHelper.MakeClientName(name) + " -> " + objs[0]); if (objs[0] != null && objs[0].GetType() == typeof(string) && objs[0].ToString()!.Trim() != "")
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + SocketHelper.MakeClientName(socket.ClientIP) + " -> " + objs[0]);
else
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + SocketHelper.MakeClientName(socket.ClientIP));
return true; return true;
} }
ServerHelper.WriteLine("客户端发送了不符合FunGame规定的字符拒绝连接。"); ServerHelper.WriteLine("客户端发送了不符合FunGame规定的字符拒绝连接。");
return false; return false;
} }
bool Send(ClientSocket socket, string name) bool Send(ClientSocket socket)
{ {
// 发送消息给客户端 // 发送消息给客户端
string msg = Config.SERVER_NAME + ";" + Config.SERVER_NOTICE; string msg = Config.SERVER_NAME + ";" + Config.SERVER_NOTICE;
@ -173,7 +178,7 @@ bool Send(ClientSocket socket, string name)
buffer = Config.DEFAULT_ENCODING.GetBytes($"1;{msg}"); buffer = Config.DEFAULT_ENCODING.GetBytes($"1;{msg}");
if (socket.Send(SocketMessageType.Connect, msg, Guid.NewGuid().ToString()) == SocketResult.Success) if (socket.Send(SocketMessageType.Connect, msg, Guid.NewGuid().ToString()) == SocketResult.Success)
{ {
ServerHelper.WriteLine(SocketHelper.MakeClientName(name) + " <- " + "已确认连接"); ServerHelper.WriteLine(SocketHelper.MakeClientName(socket.ClientIP) + " <- " + "已确认连接");
return true; return true;
} }
else else

View File

@ -50,7 +50,7 @@ namespace Milimoe.FunGame.Server.Model
string msg = ""; string msg = "";
if (type != SocketMessageType.HeartBeat) if (type != SocketMessageType.HeartBeat)
{ {
if (msg == "") if (msg.Trim() == "")
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + SocketHelper.MakeClientName(ClientName, User)); ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + SocketHelper.MakeClientName(ClientName, User));
else else
ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + SocketHelper.MakeClientName(ClientName, User) + " -> " + msg); ServerHelper.WriteLine("[" + ServerSocket.GetTypeString(type) + "] " + SocketHelper.MakeClientName(ClientName, User) + " -> " + msg);