diff --git a/FunGameServer.csproj b/FunGameServer.csproj
index 2b0c232..a187999 100644
--- a/FunGameServer.csproj
+++ b/FunGameServer.csproj
@@ -5,10 +5,19 @@
net6.0
enable
enable
+ logo.ico
+ logo.ico
-
+
+
+
+
+
+ True
+ \
+
diff --git a/Main.cs b/Main.cs
index a8d4a90..4d6584b 100644
--- a/Main.cs
+++ b/Main.cs
@@ -11,15 +11,17 @@ using FunGameServer.Utils;
bool Running = true;
Socket? ServerSocket = null;
-string host = Config.SERVER_IPADRESS;
+string hostname = Config.SERVER_NAME;
int port = Config.SERVER_PORT;
+Console.Title = Config.CONSOLE_TITLE;
+
try
{
Task t = Task.Factory.StartNew(() =>
{
// 创建IP地址终结点对象
- IPEndPoint ip = new(IPAddress.Parse(host), port);
+ IPEndPoint ip = new(IPAddress.Any, port);
// 创建TCP Socket对象并绑定终结点
ServerSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
@@ -27,7 +29,7 @@ try
// 开始监听连接
ServerSocket.Listen(Config.MAX_PLAYERS);
- Console.WriteLine("服务器启动成功,正在监听 . . .");
+ Console.WriteLine(SocketHelper.GetPrefix() + "服务器启动成功,正在监听 . . .");
while (Running)
{
@@ -37,9 +39,9 @@ try
socket = ServerSocket.Accept();
IPEndPoint? clientIP = (IPEndPoint?)socket.RemoteEndPoint;
if (clientIP != null)
- Console.WriteLine("客户端" + clientIP.ToString() + "连接 . . .");
+ Console.WriteLine(SocketHelper.GetPrefix() + "客户端" + clientIP.ToString() + "连接 . . .");
else
- Console.WriteLine("未知地点客户端连接 . . .");
+ Console.WriteLine(SocketHelper.GetPrefix() + "未知地点客户端连接 . . .");
if (Read(socket) && Send(socket))
Task.Factory.StartNew(() =>
{
@@ -47,13 +49,13 @@ try
});
else
if (clientIP != null)
- Console.WriteLine("客户端" + clientIP.ToString() + "连接失败。");
+ Console.WriteLine(SocketHelper.GetPrefix() + "客户端" + clientIP.ToString() + "连接失败。");
else
- Console.WriteLine("客户端连接失败。");
+ Console.WriteLine(SocketHelper.GetPrefix() + "客户端连接失败。");
}
catch (Exception e)
{
- Console.WriteLine("ERROR: 客户端断开连接!\n" + e.StackTrace);
+ Console.WriteLine(SocketHelper.GetPrefix() + "ERROR: 客户端断开连接!\n" + e.StackTrace);
}
}
@@ -86,7 +88,7 @@ finally
}
}
-Console.WriteLine("服务器已关闭,按任意键退出程序。");
+Console.WriteLine(SocketHelper.GetPrefix() + "服务器已关闭,按任意键退出程序。");
Console.ReadKey();
@@ -98,27 +100,34 @@ bool Read(Socket socket)
if (length > 0)
{
string msg = Config.DEFAULT_ENCODING.GetString(buffer, 0, length);
- Console.WriteLine("收到来自:客户端(玩家ID) -> " + msg);
- return true;
+ string typestring = SocketHelper.GetTypeString(SocketHelper.GetType(msg));
+ msg = SocketHelper.GetMessage(msg);
+ if (typestring != SocketEnums.TYPE_UNKNOWN)
+ {
+ Console.WriteLine(SocketHelper.GetPrefix() + "[ 客户端(" + typestring + ")] -> " + msg);
+ return true;
+ }
+ Console.WriteLine(SocketHelper.GetPrefix() + "客户端发送了不符合FunGame规定的字符,拒绝连接。");
+ return false;
}
else
- Console.WriteLine("客户端没有回应。");
+ Console.WriteLine(SocketHelper.GetPrefix() + "客户端没有回应。");
return false;
}
bool Send(Socket socket)
{
// 发送消息给客户端
- string msg = ">> 已连接至服务器 -> [ " + host + " ] 连接成功";
+ string msg = ">> 已连接至服务器 -> [ " + hostname + " ] 连接成功";
byte[] buffer = new byte[2048];
- buffer = Config.DEFAULT_ENCODING.GetBytes(SocketHelper.MakeMessage((int)SocketEnums.SendType.CheckLogin, msg));
+ buffer = Config.DEFAULT_ENCODING.GetBytes(SocketHelper.MakeMessage((int)SocketEnums.Type.CheckLogin, msg));
if (socket.Send(buffer) > 0)
{
- Console.WriteLine("发送给:客户端 <- " + msg);
+ Console.WriteLine(SocketHelper.GetPrefix() + "[ 客户端 ] <- " + msg);
return true;
}
else
- Console.WriteLine("无法传输数据,与客户端的连接可能丢失。");
+ Console.WriteLine(SocketHelper.GetPrefix() + "无法传输数据,与客户端的连接可能丢失。");
return false;
}
diff --git a/Models/Config/Config.cs b/Models/Config/Config.cs
index c07540b..c084d1b 100644
--- a/Models/Config/Config.cs
+++ b/Models/Config/Config.cs
@@ -14,10 +14,11 @@ namespace FunGameServer.Models.Config
public static int MAX_PLAYERS = 16; // 最多接受连接的玩家数量
public static int ONLINE_PLAYERS = 0; // 已连接的玩家数量
public static int CONNECTING_PLAYERS = 0; // 正在连接的玩家数量
- public static string SERVER_IPADRESS = "127.0.0.1"; // 默认IP地址
+ public static string SERVER_NAME = "米粒的糖果屋"; // 服务器名称
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";
///
/// string: 玩家标识ID
diff --git a/Models/Config/SocketEnums.cs b/Models/Config/SocketEnums.cs
index 7489d1f..7fcf791 100644
--- a/Models/Config/SocketEnums.cs
+++ b/Models/Config/SocketEnums.cs
@@ -8,7 +8,7 @@ namespace FunGameServer.Models.Config
{
public static class SocketEnums
{
- public enum SendType
+ public enum Type
{
GetNotice = 1,
Login = 2,
@@ -17,19 +17,11 @@ namespace FunGameServer.Models.Config
HeartBeat = 5
}
- public enum ReadType
- {
- GetNotice = 1,
- Login = 2,
- CheckLogin = 3,
- Logout = 4,
- HeartBeat = 5
- }
-
- public static string SENDTYPE_GetNotice = "GetNotice";
- public static string SENDTYPE_Login = "Login";
- public static string SENDTYPE_CheckLogin = "CheckLogin";
- public static string SENDTYPE_Logout = "Logout";
- public static string SENDTYPE_HeartBeat = "HeartBeat";
+ public const string TYPE_UNKNOWN = "Unknown Type";
+ public const string TYPE_GetNotice = "GetNotice";
+ public const string TYPE_Login = "Login";
+ public const string TYPE_CheckLogin = "CheckLogin";
+ public const string TYPE_Logout = "Logout";
+ public const string TYPE_HeartBeat = "HeartBeat";
}
}
diff --git a/Models/Entity/ActiveItem.cs b/Models/Entity/ActiveItem.cs
new file mode 100644
index 0000000..144b53c
--- /dev/null
+++ b/Models/Entity/ActiveItem.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FunGame.Models.Entity
+{
+ public class ActiveItem : Item
+ {
+ public ActiveSkill? Skill { get; set; } = null;
+
+ public ActiveItem()
+ {
+ Active = true;
+ }
+ }
+}
diff --git a/Models/Entity/ActiveSkill.cs b/Models/Entity/ActiveSkill.cs
new file mode 100644
index 0000000..61392f2
--- /dev/null
+++ b/Models/Entity/ActiveSkill.cs
@@ -0,0 +1,29 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FunGame.Models.Entity
+{
+ public class ActiveSkill : Skill
+ {
+ public decimal MP { get; set; } = 0;
+ public decimal EP { get; set; } = 0;
+ public decimal Reference1 { get; set; } = 0;
+ public decimal Reference2 { get; set; } = 0;
+ public decimal Reference3 { get; set; } = 0;
+ public decimal Reference4 { get; set; } = 0;
+ public decimal Reference5 { get; set; } = 0;
+ public decimal Reference6 { get; set; } = 0;
+ public decimal Reference7 { get; set; } = 0;
+ public decimal Reference8 { get; set; } = 0;
+ public decimal Reference9 { get; set; } = 0;
+ public decimal Reference10 { get; set; } = 0;
+
+ public ActiveSkill()
+ {
+ Active = true;
+ }
+ }
+}
diff --git a/Models/Entity/Character.cs b/Models/Entity/Character.cs
new file mode 100644
index 0000000..04135b3
--- /dev/null
+++ b/Models/Entity/Character.cs
@@ -0,0 +1,42 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FunGame.Models.Entity
+{
+ public class Character
+ {
+ public int Id { get; set; }
+ public string Name { get; set; } = "";
+ public string FirstName { get; set; } = "";
+ public User? User { get; set; } = null;
+ public CharacterStatistics? Statistics { get; set; } = null;
+ public int Level { get; set; } = 1;
+ public decimal EXP { get; set; }
+ public decimal HP { get; set; }
+ public decimal MP { get; set; }
+ public decimal EP { get; set; }
+ public decimal ATK { get; set; }
+ public decimal DEF { get; set; }
+ public decimal PhysicalReduction { get; set; }
+ public decimal MDF { get; set; }
+ public decimal HPRecovery { get; set; } = 0;
+ public decimal MPRecovery { get; set; } = 0;
+ public decimal EPRecovery { get; set; } = 0;
+ public decimal SPD { get; set; }
+ public decimal ATR { get; set; }
+ public decimal CritRate { get; set; } = 0.05M;
+ public decimal CritDMG { get; set; } = 1.25M;
+ public decimal EvadeRate { get; set; } = 0.05M;
+ public Hashtable? Skills { get; set; } = new Hashtable();
+ public Hashtable? Items { get; set; } = new Hashtable();
+
+ public Character()
+ {
+
+ }
+ }
+}
diff --git a/Models/Entity/CharacterStatistics.cs b/Models/Entity/CharacterStatistics.cs
new file mode 100644
index 0000000..a611f4b
--- /dev/null
+++ b/Models/Entity/CharacterStatistics.cs
@@ -0,0 +1,34 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FunGame.Models.Entity
+{
+ public class CharacterStatistics
+ {
+ public int Id { get; set; }
+ public Character? Character { get; set; } = null;
+ public Hashtable? DamageStats { get; set; } = new Hashtable();
+ public Hashtable? PhysicalDamageStats { get; set; } = new Hashtable();
+ public Hashtable? MagicDamageStats { get; set; } = new Hashtable();
+ public Hashtable? RealDamageStats { get; set; } = new Hashtable();
+ public Hashtable? AvgDamageStats { get; set; } = new Hashtable();
+ public Hashtable? AvgLiveRoundStats { get; set; } = new Hashtable();
+ public Hashtable? AvgDamageRoundStats { get; set; } = new Hashtable();
+ public Hashtable? KillStats { get; set; } = new Hashtable();
+ public Hashtable? DeathStats { get; set; } = new Hashtable();
+ public Hashtable? AssistStats { get; set; } = new Hashtable();
+ public Hashtable? Plays { get; set; } = new Hashtable();
+ public Hashtable? Wins { get; set; } = new Hashtable();
+ public Hashtable? Loses { get; set; } = new Hashtable();
+ public Hashtable? Winrates { get; set; } = new Hashtable();
+
+ public CharacterStatistics()
+ {
+
+ }
+ }
+}
diff --git a/Models/Entity/GameStatistics.cs b/Models/Entity/GameStatistics.cs
new file mode 100644
index 0000000..e13409a
--- /dev/null
+++ b/Models/Entity/GameStatistics.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FunGame.Models.Entity
+{
+ public class GameStatistics
+ {
+ public int Id { get; set; }
+ public Room? Room { get; set; } = null;
+ public string? GameRecord { get; set; } = null;
+ public string? RunTime { get; set; } = null;
+ public Hashtable? DamageStats { get; set; } = new Hashtable();
+ public Hashtable? PhysicalDamageStats { get; set; } = new Hashtable();
+ public Hashtable? MagicDamageStats { get; set; } = new Hashtable();
+ public Hashtable? RealDamageStats { get; set; } = new Hashtable();
+ public Hashtable? AvgDamageStats { get; set; } = new Hashtable();
+ public Hashtable? KillStats { get; set; } = new Hashtable();
+ public Hashtable? KillDetailStats { get; set; } = new Hashtable();
+ public Hashtable? DeathStats { get; set; } = new Hashtable();
+ public Hashtable? DeathDetailStats { get; set; } = new Hashtable();
+ public Hashtable? AssistStats { get; set; } = new Hashtable();
+ public Hashtable? RatingStats { get; set; } = new Hashtable();
+ public Hashtable? EloStats { get; set; } = new Hashtable();
+ public Hashtable? RankStats { get; set; } = new Hashtable();
+
+ public GameStatistics()
+ {
+
+ }
+ }
+}
diff --git a/Models/Entity/Item.cs b/Models/Entity/Item.cs
new file mode 100644
index 0000000..11cac8b
--- /dev/null
+++ b/Models/Entity/Item.cs
@@ -0,0 +1,19 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FunGame.Models.Entity
+{
+ public abstract class Item
+ {
+ public int Id { get; set; }
+ public string Name { get; set; } = "";
+ public string Describe { get; set; } = "";
+ public decimal Price { get; set; }
+ public char Key { get; set; }
+ public bool Active { get; set; }
+ public Character? Character { get; set; } = null;
+ }
+}
diff --git a/Models/Entity/PassiveItem.cs b/Models/Entity/PassiveItem.cs
new file mode 100644
index 0000000..1d88be2
--- /dev/null
+++ b/Models/Entity/PassiveItem.cs
@@ -0,0 +1,18 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FunGame.Models.Entity
+{
+ public class PassiveItem : Item
+ {
+ public PassiveSkill? Skill { get; set; } = null;
+
+ public PassiveItem()
+ {
+ Active = false;
+ }
+ }
+}
diff --git a/Models/Entity/PassiveSkill.cs b/Models/Entity/PassiveSkill.cs
new file mode 100644
index 0000000..8dee862
--- /dev/null
+++ b/Models/Entity/PassiveSkill.cs
@@ -0,0 +1,27 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FunGame.Models.Entity
+{
+ public class PassiveSkill : Skill
+ {
+ public decimal Reference1 { get; set; } = 0;
+ public decimal Reference2 { get; set; } = 0;
+ public decimal Reference3 { get; set; } = 0;
+ public decimal Reference4 { get; set; } = 0;
+ public decimal Reference5 { get; set; } = 0;
+ public decimal Reference6 { get; set; } = 0;
+ public decimal Reference7 { get; set; } = 0;
+ public decimal Reference8 { get; set; } = 0;
+ public decimal Reference9 { get; set; } = 0;
+ public decimal Reference10 { get; set; } = 0;
+
+ public PassiveSkill()
+ {
+ Active = false;
+ }
+ }
+}
diff --git a/Models/Entity/Room.cs b/Models/Entity/Room.cs
new file mode 100644
index 0000000..9b56d23
--- /dev/null
+++ b/Models/Entity/Room.cs
@@ -0,0 +1,33 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Security.Policy;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FunGame.Models.Entity
+{
+ public class Room
+ {
+ public int Id { get; set; }
+ public string Roomid { get; set; } = "";
+ public DateTime Time { get; set; } = DateTime.Now;
+ public Hashtable PlayerList { get; set; } = new Hashtable();
+ public User? RoomMaster { get; set; }
+ public int RoomType { get; set; }
+ public int RoomState { get; set; }
+ public GameStatistics? Statistics { get; set; } = null;
+
+ public Room(User? master = null)
+ {
+ if (master != null) RoomMaster = master;
+ }
+
+ public Room(string roomid, User? master = null)
+ {
+ Roomid = roomid;
+ if (master != null) RoomMaster = master;
+ }
+ }
+}
diff --git a/Models/Entity/Skill.cs b/Models/Entity/Skill.cs
new file mode 100644
index 0000000..4b150f6
--- /dev/null
+++ b/Models/Entity/Skill.cs
@@ -0,0 +1,17 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FunGame.Models.Entity
+{
+ public abstract class Skill
+ {
+ public int Id { get; set; }
+ public string Name { get; set; } = "";
+ public string Describe { get; set; } = "";
+ public char Key { get; set; }
+ public bool Active { get; set; }
+ }
+}
diff --git a/Models/Entity/Stock.cs b/Models/Entity/Stock.cs
new file mode 100644
index 0000000..3587f5f
--- /dev/null
+++ b/Models/Entity/Stock.cs
@@ -0,0 +1,23 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FunGame.Models.Entity
+{
+ public class Stock
+ {
+ public int Id { get; set; }
+ public string Name { get; set; } = "";
+ public User? User { get; set; } = null;
+ public Hashtable? Characters { get; set; } = new Hashtable();
+ public Hashtable? Items { get; set; } = new Hashtable();
+
+ public Stock()
+ {
+
+ }
+ }
+}
diff --git a/Models/Entity/User.cs b/Models/Entity/User.cs
new file mode 100644
index 0000000..38411a8
--- /dev/null
+++ b/Models/Entity/User.cs
@@ -0,0 +1,44 @@
+using System;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FunGame.Models.Entity
+{
+ public class User
+ {
+ public int Id { get; set; }
+ public string Userame { get; set; } = "";
+ public string Password { get; set; } = "";
+ public DateTime RegTime { get; set; }
+ public DateTime LastTime { get; set; }
+ public string Email { get; set; } = "";
+ public string NickName { get; set; } = "";
+ public bool IsAdmin { get; set; } = false;
+ public bool IsOperator { get; set; } = false;
+ public bool IsEnable { get; set; } = false;
+ public int OnlineState { get; set; } = 0;
+ public string Roomid { get; set; } = "";
+ public int Credits { get; set; } = 0;
+ public int Material { get; set; } = 0;
+ public UserStatistics? Statistics { get; set; } = null;
+ public Stock? Stock { get; set; } = null;
+
+ public User()
+ {
+
+ }
+
+ public User(string username)
+ {
+ Userame = username;
+ }
+
+ public User(string username, string password)
+ {
+ Userame = username;
+ Password = password;
+ }
+ }
+}
diff --git a/Models/Entity/UserStatistics.cs b/Models/Entity/UserStatistics.cs
new file mode 100644
index 0000000..9132c53
--- /dev/null
+++ b/Models/Entity/UserStatistics.cs
@@ -0,0 +1,35 @@
+using System;
+using System.Collections;
+using System.Collections.Generic;
+using System.Linq;
+using System.Text;
+using System.Threading.Tasks;
+
+namespace FunGame.Models.Entity
+{
+ public class UserStatistics
+ {
+ public int Id { get; set; }
+ public User? User { get; set; } = null;
+ public Hashtable? DamageStats { get; set; } = new Hashtable();
+ public Hashtable? PhysicalDamageStats { get; set; } = new Hashtable();
+ public Hashtable? MagicDamageStats { get; set; } = new Hashtable();
+ public Hashtable? RealDamageStats { get; set; } = new Hashtable();
+ public Hashtable? AvgDamageStats { get; set; } = new Hashtable();
+ public Hashtable? KillStats { get; set; } = new Hashtable();
+ public Hashtable? DeathStats { get; set; } = new Hashtable();
+ public Hashtable? AssistStats { get; set; } = new Hashtable();
+ public Hashtable? Plays { get; set; } = new Hashtable();
+ public Hashtable? Wins { get; set; } = new Hashtable();
+ public Hashtable? Loses { get; set; } = new Hashtable();
+ public Hashtable? Winrates { get; set; } = new Hashtable();
+ public Hashtable? RatingStats { get; set; } = new Hashtable();
+ public Hashtable? EloStats { get; set; } = new Hashtable();
+ public Hashtable? RankStats { get; set; } = new Hashtable();
+
+ public UserStatistics()
+ {
+
+ }
+ }
+}
diff --git a/Sockets/ClientSocket.cs b/Sockets/ClientSocket.cs
index d078441..a64f62f 100644
--- a/Sockets/ClientSocket.cs
+++ b/Sockets/ClientSocket.cs
@@ -8,6 +8,8 @@ using System.Text;
using System.Threading.Tasks;
using System.Data.SqlTypes;
using FunGameServer.Utils;
+using System.Reflection.Metadata;
+using FunGame.Models.Entity;
namespace FunGameServer.Sockets
{
@@ -16,6 +18,8 @@ namespace FunGameServer.Sockets
public bool Running { get; set; } = false;
public Socket? Socket { get; set; } = null;
+ private User? user = null;
+
public ClientSocket(Socket socket, bool running)
{
Socket = socket;
@@ -35,19 +39,21 @@ namespace FunGameServer.Sockets
{
string msg = Config.DEFAULT_ENCODING.GetString(buffer, 0, length);
int type = SocketHelper.GetType(msg);
+ string typestring = SocketHelper.GetTypeString(type);
msg = SocketHelper.GetMessage(msg);
- Console.WriteLine("收到来自:客户端(" + type + ") -> " + msg);
+ Console.WriteLine(SocketHelper.GetPrefix() + "[ 客户端(" + typestring + ")] -> " + msg);
switch (type)
{
- case (int)SocketEnums.ReadType.GetNotice:
+ case (int)SocketEnums.Type.GetNotice:
break;
- case (int)SocketEnums.ReadType.Login:
+ case (int)SocketEnums.Type.Login:
break;
- case (int)SocketEnums.ReadType.CheckLogin:
+ case (int)SocketEnums.Type.CheckLogin:
+ return true;
+ case (int)SocketEnums.Type.Logout:
break;
- case (int)SocketEnums.ReadType.Logout:
- break;
- case (int)SocketEnums.ReadType.HeartBeat:
+ case (int)SocketEnums.Type.HeartBeat:
+ msg = "";
break;
}
return Send(socket, type, msg);
@@ -56,7 +62,7 @@ namespace FunGameServer.Sockets
}
catch (Exception e)
{
- Console.WriteLine("ERROR:客户端没有回应。\n" + e.StackTrace);
+ Console.WriteLine(SocketHelper.GetPrefix() + "ERROR:客户端没有回应。\n" + e.StackTrace);
return false;
}
}
@@ -68,16 +74,20 @@ namespace FunGameServer.Sockets
{
byte[] buffer = new byte[2048];
buffer = Config.DEFAULT_ENCODING.GetBytes(Convert.ToString(SocketHelper.MakeMessage(type, msg)));
+ string typestring = SocketHelper.GetTypeString(type);
if (socket.Send(buffer) > 0)
{
- Console.WriteLine("发送给:客户端(" + type + ") <- " + msg);
+ if (msg != "")
+ Console.WriteLine(SocketHelper.GetPrefix() + "[ 客户端(" + typestring + ")] <- " + msg);
+ else
+ Console.WriteLine(SocketHelper.GetPrefix() + "-> [ 客户端(" + typestring + ")]");
return true;
}
throw new Exception();
}
catch (Exception e)
{
- Console.WriteLine("ERROR:客户端没有回应。" + e.StackTrace);
+ Console.WriteLine(SocketHelper.GetPrefix() + "ERROR:客户端没有回应。" + e.StackTrace);
return false;
}
}
@@ -93,7 +103,7 @@ namespace FunGameServer.Sockets
private void CreateStreamReader()
{
Thread.Sleep(1000);
- Console.WriteLine("Creating: StreamReader...OK");
+ Console.WriteLine(SocketHelper.GetPrefix() + "Creating: StreamReader...OK");
while (Running)
{
if (Socket != null)
@@ -103,8 +113,8 @@ namespace FunGameServer.Sockets
FailedTimes++;
if (FailedTimes >= Config.MAX_CONNECTFAILED)
{
- Console.WriteLine("ERROR: Too Many Faileds.");
- Console.WriteLine("DONE: StreamReader is Closed.");
+ Console.WriteLine(SocketHelper.GetPrefix() + "ERROR: Too Many Faileds.");
+ Console.WriteLine(SocketHelper.GetPrefix() + "CLOSE: StreamReader is Closed.");
break;
}
}
@@ -112,8 +122,8 @@ namespace FunGameServer.Sockets
}
else
{
- Console.WriteLine("ERROR: Socket is Closed.");
- Console.WriteLine("DONE: StringStream is Closed.");
+ Console.WriteLine(SocketHelper.GetPrefix() + "ERROR: Socket is Closed.");
+ Console.WriteLine(SocketHelper.GetPrefix() + "CLOSE: StringStream is Closed.");
break;
}
}
diff --git a/Utils/SocketHelper.cs b/Utils/SocketHelper.cs
index 212f4bb..882dd13 100644
--- a/Utils/SocketHelper.cs
+++ b/Utils/SocketHelper.cs
@@ -1,4 +1,5 @@
-using System;
+using FunGameServer.Models.Config;
+using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
@@ -17,6 +18,25 @@ namespace FunGameServer.Utils
return Convert.ToInt32(msg[..1]);
}
+ public static string GetTypeString(int type)
+ {
+ switch (type)
+ {
+ case (int)SocketEnums.Type.GetNotice:
+ return SocketEnums.TYPE_GetNotice;
+ case (int)SocketEnums.Type.Login:
+ return SocketEnums.TYPE_Login;
+ case (int)SocketEnums.Type.CheckLogin:
+ return SocketEnums.TYPE_CheckLogin;
+ case (int)SocketEnums.Type.Logout:
+ return SocketEnums.TYPE_Logout;
+ case (int)SocketEnums.Type.HeartBeat:
+ return SocketEnums.TYPE_HeartBeat;
+ default:
+ return SocketEnums.TYPE_UNKNOWN;
+ }
+ }
+
public static string GetMessage(string msg)
{
int index = msg.IndexOf(';') + 1;
@@ -27,5 +47,11 @@ namespace FunGameServer.Utils
{
return type + ";" + msg;
}
+
+ public static string GetPrefix()
+ {
+ DateTime now = System.DateTime.Now;
+ return now.AddMilliseconds(-now.Millisecond).ToString() + " " + Config.SERVER_NAME + ":";
+ }
}
}
diff --git a/logo.ico b/logo.ico
new file mode 100644
index 0000000..4082874
Binary files /dev/null and b/logo.ico differ