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