diff --git a/FunGameServer.Core/FunGameServer.Core.csproj b/FunGameServer.Core/FunGameServer.Core.csproj new file mode 100644 index 0000000..62689ee --- /dev/null +++ b/FunGameServer.Core/FunGameServer.Core.csproj @@ -0,0 +1,14 @@ + + + + net6.0 + enable + enable + C:\milimoe\FunGame\bin + + + + + + + diff --git a/FunGameServer.sln b/FunGameServer.sln index e4cce4d..21fac4e 100644 --- a/FunGameServer.sln +++ b/FunGameServer.sln @@ -3,7 +3,9 @@ Microsoft Visual Studio Solution File, Format Version 12.00 # Visual Studio Version 17 VisualStudioVersion = 17.3.32804.467 MinimumVisualStudioVersion = 10.0.40219.1 -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FunGameServer", "FunGameServer.csproj", "{CFC4F490-967B-4F12-883E-86C2A6E61461}" +Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "FunGameServer", "FunGameServer\FunGameServer.csproj", "{CFC4F490-967B-4F12-883E-86C2A6E61461}" +EndProject +Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "FunGameServer.Core", "FunGameServer.Core\FunGameServer.Core.csproj", "{F5BACA36-3DE2-450A-8518-E5DC29991875}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution @@ -15,6 +17,10 @@ Global {CFC4F490-967B-4F12-883E-86C2A6E61461}.Debug|Any CPU.Build.0 = Debug|Any CPU {CFC4F490-967B-4F12-883E-86C2A6E61461}.Release|Any CPU.ActiveCfg = Release|Any CPU {CFC4F490-967B-4F12-883E-86C2A6E61461}.Release|Any CPU.Build.0 = Release|Any CPU + {F5BACA36-3DE2-450A-8518-E5DC29991875}.Debug|Any CPU.ActiveCfg = Debug|Any CPU + {F5BACA36-3DE2-450A-8518-E5DC29991875}.Debug|Any CPU.Build.0 = Debug|Any CPU + {F5BACA36-3DE2-450A-8518-E5DC29991875}.Release|Any CPU.ActiveCfg = Release|Any CPU + {F5BACA36-3DE2-450A-8518-E5DC29991875}.Release|Any CPU.Build.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE diff --git a/FunGameServer.csproj b/FunGameServer/FunGameServer.csproj similarity index 89% rename from FunGameServer.csproj rename to FunGameServer/FunGameServer.csproj index a187999..6d59bc1 100644 --- a/FunGameServer.csproj +++ b/FunGameServer/FunGameServer.csproj @@ -7,6 +7,7 @@ enable logo.ico logo.ico + C:\milimoe\FunGame\bin diff --git a/Main.cs b/FunGameServer/Main.cs similarity index 68% rename from Main.cs rename to FunGameServer/Main.cs index 4d6584b..b7522e1 100644 --- a/Main.cs +++ b/FunGameServer/Main.cs @@ -29,7 +29,7 @@ try // 开始监听连接 ServerSocket.Listen(Config.MAX_PLAYERS); - Console.WriteLine(SocketHelper.GetPrefix() + "服务器启动成功,正在监听 . . ."); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "服务器启动成功,正在监听 . . ."); while (Running) { @@ -39,9 +39,9 @@ try socket = ServerSocket.Accept(); IPEndPoint? clientIP = (IPEndPoint?)socket.RemoteEndPoint; if (clientIP != null) - Console.WriteLine(SocketHelper.GetPrefix() + "客户端" + clientIP.ToString() + "连接 . . ."); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "客户端" + clientIP.ToString() + "连接 . . ."); else - Console.WriteLine(SocketHelper.GetPrefix() + "未知地点客户端连接 . . ."); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "未知地点客户端连接 . . ."); if (Read(socket) && Send(socket)) Task.Factory.StartNew(() => { @@ -49,13 +49,13 @@ try }); else if (clientIP != null) - Console.WriteLine(SocketHelper.GetPrefix() + "客户端" + clientIP.ToString() + "连接失败。"); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "客户端" + clientIP.ToString() + "连接失败。"); else - Console.WriteLine(SocketHelper.GetPrefix() + "客户端连接失败。"); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "客户端连接失败。"); } catch (Exception e) { - Console.WriteLine(SocketHelper.GetPrefix() + "ERROR: 客户端断开连接!\n" + e.StackTrace); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "ERROR: 客户端断开连接!\n" + e.StackTrace); } } @@ -63,7 +63,7 @@ try } catch (Exception e) { - Console.WriteLine(e.StackTrace); + SocketHelper.WriteLine(e.StackTrace); if (ServerSocket != null) { ServerSocket.Close(); @@ -76,6 +76,7 @@ finally { string? order = ""; order = Console.ReadLine(); + SocketHelper.WriteLine("\r> " + order); if (order != null && !order.Equals("")) { switch (order) @@ -88,7 +89,7 @@ finally } } -Console.WriteLine(SocketHelper.GetPrefix() + "服务器已关闭,按任意键退出程序。"); +SocketHelper.WriteLine(SocketHelper.GetPrefix() + "服务器已关闭,按任意键退出程序。"); Console.ReadKey(); @@ -104,14 +105,14 @@ bool Read(Socket socket) msg = SocketHelper.GetMessage(msg); if (typestring != SocketEnums.TYPE_UNKNOWN) { - Console.WriteLine(SocketHelper.GetPrefix() + "[ 客户端(" + typestring + ")] -> " + msg); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "[ 客户端(" + typestring + ")] -> " + msg); return true; } - Console.WriteLine(SocketHelper.GetPrefix() + "客户端发送了不符合FunGame规定的字符,拒绝连接。"); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "客户端发送了不符合FunGame规定的字符,拒绝连接。"); return false; } else - Console.WriteLine(SocketHelper.GetPrefix() + "客户端没有回应。"); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "客户端没有回应。"); return false; } @@ -123,11 +124,11 @@ bool Send(Socket socket) buffer = Config.DEFAULT_ENCODING.GetBytes(SocketHelper.MakeMessage((int)SocketEnums.Type.CheckLogin, msg)); if (socket.Send(buffer) > 0) { - Console.WriteLine(SocketHelper.GetPrefix() + "[ 客户端 ] <- " + msg); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "[ 客户端 ] <- " + msg); return true; } else - Console.WriteLine(SocketHelper.GetPrefix() + "无法传输数据,与客户端的连接可能丢失。"); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "无法传输数据,与客户端的连接可能丢失。"); return false; } diff --git a/Models/Config/Config.cs b/FunGameServer/Models/Config/Config.cs similarity index 94% rename from Models/Config/Config.cs rename to FunGameServer/Models/Config/Config.cs index c084d1b..5eb5b94 100644 --- a/Models/Config/Config.cs +++ b/FunGameServer/Models/Config/Config.cs @@ -18,7 +18,7 @@ namespace FunGameServer.Models.Config public static int SERVER_PORT = 22222; // 默认端口 public static Encoding DEFAULT_ENCODING = Encoding.UTF8; // 默认传输字符集 public static int MAX_CONNECTFAILED = 5; // 最大连接失败次数 - public const string CONSOLE_TITLE = "FunGame Server"; + public const string CONSOLE_TITLE = "FunGame Server"; // 控制台的标题 /// /// string: 玩家标识ID diff --git a/Models/Config/SocketEnums.cs b/FunGameServer/Models/Config/SocketEnums.cs similarity index 100% rename from Models/Config/SocketEnums.cs rename to FunGameServer/Models/Config/SocketEnums.cs diff --git a/Models/Entity/ActiveItem.cs b/FunGameServer/Models/Entity/ActiveItem.cs similarity index 100% rename from Models/Entity/ActiveItem.cs rename to FunGameServer/Models/Entity/ActiveItem.cs diff --git a/Models/Entity/ActiveSkill.cs b/FunGameServer/Models/Entity/ActiveSkill.cs similarity index 100% rename from Models/Entity/ActiveSkill.cs rename to FunGameServer/Models/Entity/ActiveSkill.cs diff --git a/Models/Entity/Character.cs b/FunGameServer/Models/Entity/Character.cs similarity index 100% rename from Models/Entity/Character.cs rename to FunGameServer/Models/Entity/Character.cs diff --git a/Models/Entity/CharacterStatistics.cs b/FunGameServer/Models/Entity/CharacterStatistics.cs similarity index 100% rename from Models/Entity/CharacterStatistics.cs rename to FunGameServer/Models/Entity/CharacterStatistics.cs diff --git a/Models/Entity/GameStatistics.cs b/FunGameServer/Models/Entity/GameStatistics.cs similarity index 100% rename from Models/Entity/GameStatistics.cs rename to FunGameServer/Models/Entity/GameStatistics.cs diff --git a/Models/Entity/Item.cs b/FunGameServer/Models/Entity/Item.cs similarity index 100% rename from Models/Entity/Item.cs rename to FunGameServer/Models/Entity/Item.cs diff --git a/Models/Entity/PassiveItem.cs b/FunGameServer/Models/Entity/PassiveItem.cs similarity index 100% rename from Models/Entity/PassiveItem.cs rename to FunGameServer/Models/Entity/PassiveItem.cs diff --git a/Models/Entity/PassiveSkill.cs b/FunGameServer/Models/Entity/PassiveSkill.cs similarity index 100% rename from Models/Entity/PassiveSkill.cs rename to FunGameServer/Models/Entity/PassiveSkill.cs diff --git a/Models/Entity/Room.cs b/FunGameServer/Models/Entity/Room.cs similarity index 100% rename from Models/Entity/Room.cs rename to FunGameServer/Models/Entity/Room.cs diff --git a/Models/Entity/Skill.cs b/FunGameServer/Models/Entity/Skill.cs similarity index 100% rename from Models/Entity/Skill.cs rename to FunGameServer/Models/Entity/Skill.cs diff --git a/Models/Entity/Stock.cs b/FunGameServer/Models/Entity/Stock.cs similarity index 100% rename from Models/Entity/Stock.cs rename to FunGameServer/Models/Entity/Stock.cs diff --git a/Models/Entity/User.cs b/FunGameServer/Models/Entity/User.cs similarity index 100% rename from Models/Entity/User.cs rename to FunGameServer/Models/Entity/User.cs diff --git a/Models/Entity/UserStatistics.cs b/FunGameServer/Models/Entity/UserStatistics.cs similarity index 100% rename from Models/Entity/UserStatistics.cs rename to FunGameServer/Models/Entity/UserStatistics.cs diff --git a/Sockets/ClientSocket.cs b/FunGameServer/Sockets/ClientSocket.cs similarity index 75% rename from Sockets/ClientSocket.cs rename to FunGameServer/Sockets/ClientSocket.cs index a64f62f..92f46a7 100644 --- a/Sockets/ClientSocket.cs +++ b/FunGameServer/Sockets/ClientSocket.cs @@ -10,6 +10,7 @@ using System.Data.SqlTypes; using FunGameServer.Utils; using System.Reflection.Metadata; using FunGame.Models.Entity; +using System.Net; namespace FunGameServer.Sockets { @@ -41,7 +42,7 @@ namespace FunGameServer.Sockets int type = SocketHelper.GetType(msg); string typestring = SocketHelper.GetTypeString(type); msg = SocketHelper.GetMessage(msg); - Console.WriteLine(SocketHelper.GetPrefix() + "[ 客户端(" + typestring + ")] -> " + msg); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "[ 客户端(" + typestring + ")] -> " + msg); switch (type) { case (int)SocketEnums.Type.GetNotice: @@ -62,7 +63,7 @@ namespace FunGameServer.Sockets } catch (Exception e) { - Console.WriteLine(SocketHelper.GetPrefix() + "ERROR:客户端没有回应。\n" + e.StackTrace); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "ERROR:客户端没有回应。\n" + e.StackTrace); return false; } } @@ -78,16 +79,16 @@ namespace FunGameServer.Sockets if (socket.Send(buffer) > 0) { if (msg != "") - Console.WriteLine(SocketHelper.GetPrefix() + "[ 客户端(" + typestring + ")] <- " + msg); - else - Console.WriteLine(SocketHelper.GetPrefix() + "-> [ 客户端(" + typestring + ")]"); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "[ 客户端(" + typestring + ")] <- " + msg); + //else + // SocketHelper.WriteLine(SocketHelper.GetPrefix() + "-> [ 客户端(" + typestring + ")]"); return true; } throw new Exception(); } catch (Exception e) { - Console.WriteLine(SocketHelper.GetPrefix() + "ERROR:客户端没有回应。" + e.StackTrace); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "ERROR:客户端没有回应。" + e.StackTrace); return false; } } @@ -103,7 +104,7 @@ namespace FunGameServer.Sockets private void CreateStreamReader() { Thread.Sleep(1000); - Console.WriteLine(SocketHelper.GetPrefix() + "Creating: StreamReader...OK"); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "Creating: StreamReader...OK"); while (Running) { if (Socket != null) @@ -113,8 +114,8 @@ namespace FunGameServer.Sockets FailedTimes++; if (FailedTimes >= Config.MAX_CONNECTFAILED) { - Console.WriteLine(SocketHelper.GetPrefix() + "ERROR: Too Many Faileds."); - Console.WriteLine(SocketHelper.GetPrefix() + "CLOSE: StreamReader is Closed."); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "ERROR: Too Many Faileds."); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "CLOSE: StreamReader is Closed."); break; } } @@ -122,8 +123,8 @@ namespace FunGameServer.Sockets } else { - Console.WriteLine(SocketHelper.GetPrefix() + "ERROR: Socket is Closed."); - Console.WriteLine(SocketHelper.GetPrefix() + "CLOSE: StringStream is Closed."); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "ERROR: Socket is Closed."); + SocketHelper.WriteLine(SocketHelper.GetPrefix() + "CLOSE: StringStream is Closed."); break; } } diff --git a/Utils/SocketHelper.cs b/FunGameServer/Utils/SocketHelper.cs similarity index 91% rename from Utils/SocketHelper.cs rename to FunGameServer/Utils/SocketHelper.cs index 882dd13..cdd6ea4 100644 --- a/Utils/SocketHelper.cs +++ b/FunGameServer/Utils/SocketHelper.cs @@ -2,6 +2,7 @@ using System; using System.Collections.Generic; using System.Linq; +using System.Net.NetworkInformation; using System.Text; using System.Threading.Tasks; @@ -53,5 +54,10 @@ namespace FunGameServer.Utils DateTime now = System.DateTime.Now; return now.AddMilliseconds(-now.Millisecond).ToString() + " " + Config.SERVER_NAME + ":"; } + + public static void WriteLine(string? msg) + { + Console.Write("\r" + msg + "\n\r> "); + } } } diff --git a/logo.ico b/FunGameServer/logo.ico similarity index 100% rename from logo.ico rename to FunGameServer/logo.ico