找回密码 第二部分 (#14)

This commit is contained in:
milimoe 2023-07-04 16:31:11 +08:00 committed by GitHub
parent 09b2029955
commit a01f0adc7b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
10 changed files with 160 additions and 86 deletions

View File

@ -42,5 +42,9 @@ namespace Milimoe.FunGame.Desktop.Controller
return result; return result;
} }
public static string ForgetPassword_CheckVerifyCode(string username, string email, string verifycode = "") => LoginModel.ForgetPassword_CheckVerifyCode(username, email, verifycode);
public static string ForgetPassword_UpdatePassword(string username, string password) => LoginModel.ForgetPassword_UpdatePassword(username, password);
} }
} }

View File

@ -1,6 +1,5 @@
using Milimoe.FunGame.Core.Api.Transmittal; using Milimoe.FunGame.Core.Api.Transmittal;
using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Desktop.Model;
namespace Milimoe.FunGame.Desktop.Library namespace Milimoe.FunGame.Desktop.Library
{ {

View File

@ -1,9 +1,12 @@
using Milimoe.FunGame.Core.Api.Utility; using Milimoe.FunGame.Core.Api.Transmittal;
using Milimoe.FunGame.Core.Api.Utility;
using Milimoe.FunGame.Core.Entity; using Milimoe.FunGame.Core.Entity;
using Milimoe.FunGame.Core.Library.Common.Architecture; using Milimoe.FunGame.Core.Library.Common.Architecture;
using Milimoe.FunGame.Core.Library.Common.Network; using Milimoe.FunGame.Core.Library.Common.Network;
using Milimoe.FunGame.Core.Library.Constant; using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Core.Library.Exception; using Milimoe.FunGame.Core.Library.Exception;
using Milimoe.FunGame.Core.Library.SQLScript.Common;
using Milimoe.FunGame.Core.Library.SQLScript.Entity;
using Milimoe.FunGame.Desktop.Library; using Milimoe.FunGame.Desktop.Library;
using Milimoe.FunGame.Desktop.Library.Component; using Milimoe.FunGame.Desktop.Library.Component;
@ -26,7 +29,7 @@ namespace Milimoe.FunGame.Desktop.Model
{ {
try try
{ {
if (SocketObject.SocketType == SocketMessageType.Login || SocketObject.SocketType == SocketMessageType.CheckLogin) if (SocketObject.SocketType == SocketMessageType.RunTime_Login || SocketObject.SocketType == SocketMessageType.RunTime_CheckLogin)
{ {
Work = SocketObject; Work = SocketObject;
Working = false; Working = false;
@ -53,7 +56,7 @@ namespace Milimoe.FunGame.Desktop.Model
if (objs.Length > 2) autokey = (string)objs[2]; if (objs.Length > 2) autokey = (string)objs[2];
password = password.Encrypt(username); password = password.Encrypt(username);
SetWorking(); SetWorking();
if (Socket.Send(SocketMessageType.Login, username, password, autokey) == SocketResult.Success) if (Socket.Send(SocketMessageType.RunTime_Login, username, password, autokey) == SocketResult.Success)
{ {
string ErrorMsg = ""; string ErrorMsg = "";
Guid CheckLoginKey = Guid.Empty; Guid CheckLoginKey = Guid.Empty;
@ -64,7 +67,7 @@ namespace Milimoe.FunGame.Desktop.Model
return false; return false;
} }
SetWorking(); SetWorking();
if (Socket.Send(SocketMessageType.CheckLogin, CheckLoginKey) == SocketResult.Success) if (Socket.Send(SocketMessageType.RunTime_CheckLogin, CheckLoginKey) == SocketResult.Success)
{ {
User user = await Task.Factory.StartNew(GetLoginUserAsync); User user = await Task.Factory.StartNew(GetLoginUserAsync);
// 创建User对象并返回到Main // 创建User对象并返回到Main
@ -105,6 +108,70 @@ namespace Milimoe.FunGame.Desktop.Model
return (key, msg); return (key, msg);
} }
public static string ForgetPassword_CheckVerifyCode(string username, string email, string verifycode)
{
string msg = "无法找回您的密码,请稍后再试。";
try
{
DataRequest request = RunTime.NewDataRequest(DataRequestType.Login_GetFindPasswordVerifyCode);
request.AddRequestData(ForgetVerifyCodes.Column_Username, username);
request.AddRequestData(ForgetVerifyCodes.Column_Email, email);
if (verifycode.Trim() == "")
{
// 未发送verifycode说明需要系统生成一个验证码
request.AddRequestData(ForgetVerifyCodes.Column_ForgetVerifyCode, "");
request.SendRequest();
if (request.Result == RequestResult.Success)
{
msg = request.GetResult<string>("msg") ?? msg;
}
else RunTime.WritelnSystemInfo(request.Error);
}
else
{
// 发送verifycode需要验证
request.AddRequestData(ForgetVerifyCodes.Column_ForgetVerifyCode, verifycode);
request.SendRequest();
if (request.Result == RequestResult.Success)
{
msg = request.GetResult<string>("msg") ?? msg;
}
else RunTime.WritelnSystemInfo(request.Error);
}
}
catch (Exception e)
{
RunTime.WritelnSystemInfo(e.GetErrorInfo());
}
return msg;
}
public static string ForgetPassword_UpdatePassword(string username, string password)
{
string msg = "无法更新您的密码,请稍后再试。";
try
{
DataRequest request = RunTime.NewDataRequest(DataRequestType.Login_UpdatePassword);
request.AddRequestData(UserQuery.Column_Username, username);
request.AddRequestData(UserQuery.Column_Password, password.Encrypt(username));
request.SendRequest();
if (request.Result == RequestResult.Success)
{
msg = request.GetResult<string>("msg") ?? msg;
}
else RunTime.WritelnSystemInfo(request.Error);
}
catch (Exception e)
{
RunTime.WritelnSystemInfo(e.GetErrorInfo());
}
return msg;
}
private static User GetLoginUserAsync() private static User GetLoginUserAsync()
{ {
User user = General.UnknownUserInstance; User user = General.UnknownUserInstance;

View File

@ -29,7 +29,7 @@ namespace Milimoe.FunGame.Desktop.Model
if (Usercfg.LoginKey != Guid.Empty) if (Usercfg.LoginKey != Guid.Empty)
{ {
SetWorking(); SetWorking();
if (RunTime.Socket?.Send(SocketMessageType.Logout, Usercfg.LoginKey) == SocketResult.Success) if (RunTime.Socket?.Send(SocketMessageType.RunTime_Logout, Usercfg.LoginKey) == SocketResult.Success)
{ {
string msg = ""; string msg = "";
Guid key = Guid.Empty; Guid key = Guid.Empty;
@ -57,7 +57,7 @@ namespace Milimoe.FunGame.Desktop.Model
try try
{ {
SetWorking(); SetWorking();
if (RunTime.Socket?.Send(SocketMessageType.IntoRoom, room.Roomid) == SocketResult.Success) if (RunTime.Socket?.Send(SocketMessageType.Main_IntoRoom, room.Roomid) == SocketResult.Success)
{ {
string roomid = await Task.Factory.StartNew(SocketHandler_IntoRoom); string roomid = await Task.Factory.StartNew(SocketHandler_IntoRoom);
if (roomid.Trim() != "" && roomid == "-1") if (roomid.Trim() != "" && roomid == "-1")
@ -84,7 +84,7 @@ namespace Milimoe.FunGame.Desktop.Model
try try
{ {
SetWorking(); SetWorking();
if (RunTime.Socket?.Send(SocketMessageType.UpdateRoom) == SocketResult.Success) if (RunTime.Socket?.Send(SocketMessageType.Main_UpdateRoom) == SocketResult.Success)
{ {
List<Room> list = await Task.Factory.StartNew(SocketHandler_UpdateRoom); List<Room> list = await Task.Factory.StartNew(SocketHandler_UpdateRoom);
Main.UpdateUI(MainInvokeType.UpdateRoom, list); Main.UpdateUI(MainInvokeType.UpdateRoom, list);
@ -104,7 +104,7 @@ namespace Milimoe.FunGame.Desktop.Model
try try
{ {
SetWorking(); SetWorking();
if (RunTime.Socket?.Send(SocketMessageType.GetRoomPlayerCount, roomid) == SocketResult.Success) if (RunTime.Socket?.Send(SocketMessageType.Room_GetRoomPlayerCount, roomid) == SocketResult.Success)
{ {
return await Task.Factory.StartNew(SocketHandler_GetRoomPlayerCount); return await Task.Factory.StartNew(SocketHandler_GetRoomPlayerCount);
} }
@ -123,7 +123,7 @@ namespace Milimoe.FunGame.Desktop.Model
try try
{ {
SetWorking(); SetWorking();
if (RunTime.Socket?.Send(SocketMessageType.QuitRoom, roomid, isMaster) == SocketResult.Success) if (RunTime.Socket?.Send(SocketMessageType.Main_QuitRoom, roomid, isMaster) == SocketResult.Success)
{ {
result = await Task.Factory.StartNew(SocketHandler_QuitRoom); result = await Task.Factory.StartNew(SocketHandler_QuitRoom);
if (result) if (result)
@ -146,7 +146,7 @@ namespace Milimoe.FunGame.Desktop.Model
try try
{ {
SetWorking(); SetWorking();
if (RunTime.Socket?.Send(SocketMessageType.CreateRoom, RoomType, Usercfg.LoginUser.Id, Password) == SocketResult.Success) if (RunTime.Socket?.Send(SocketMessageType.Main_CreateRoom, RoomType, Usercfg.LoginUser.Id, Password) == SocketResult.Success)
{ {
string roomid = await Task.Factory.StartNew(SocketHandler_CreateRoom); string roomid = await Task.Factory.StartNew(SocketHandler_CreateRoom);
if (roomid.Trim() != "") if (roomid.Trim() != "")
@ -167,7 +167,7 @@ namespace Milimoe.FunGame.Desktop.Model
{ {
try try
{ {
if (RunTime.Socket?.Send(SocketMessageType.Chat, msg) == SocketResult.Success) if (RunTime.Socket?.Send(SocketMessageType.Main_Chat, msg) == SocketResult.Success)
{ {
return true; return true;
} }
@ -185,15 +185,15 @@ namespace Milimoe.FunGame.Desktop.Model
try try
{ {
// 定义接收的通信类型 // 定义接收的通信类型
SocketMessageType[] SocketMessageTypes = new SocketMessageType[] { SocketMessageType.GetNotice, SocketMessageType.Logout, SocketMessageType.IntoRoom, SocketMessageType.QuitRoom, SocketMessageType[] SocketMessageTypes = new SocketMessageType[] { SocketMessageType.Main_GetNotice, SocketMessageType.RunTime_Logout, SocketMessageType.Main_IntoRoom, SocketMessageType.Main_QuitRoom,
SocketMessageType.Chat, SocketMessageType.UpdateRoom, SocketMessageType.CreateRoom }; SocketMessageType.Main_Chat, SocketMessageType.Main_UpdateRoom, SocketMessageType.Main_CreateRoom };
if (SocketObject.SocketType == SocketMessageType.HeartBeat) if (SocketObject.SocketType == SocketMessageType.RunTime_HeartBeat)
{ {
// 心跳包单独处理 // 心跳包单独处理
if ((RunTime.Socket?.Connected ?? false) && Usercfg.LoginUser.Id != 0) if ((RunTime.Socket?.Connected ?? false) && Usercfg.LoginUser.Id != 0)
Main.UpdateUI(MainInvokeType.SetGreenAndPing); Main.UpdateUI(MainInvokeType.SetGreenAndPing);
} }
else if (SocketObject.SocketType == SocketMessageType.ForceLogout) else if (SocketObject.SocketType == SocketMessageType.RunTime_ForceLogout)
{ {
// 服务器强制下线登录 // 服务器强制下线登录
Guid key = Guid.Empty; Guid key = Guid.Empty;
@ -207,7 +207,7 @@ namespace Milimoe.FunGame.Desktop.Model
Main.UpdateUI(MainInvokeType.LogOut, msg ?? ""); Main.UpdateUI(MainInvokeType.LogOut, msg ?? "");
} }
} }
else if (SocketObject.SocketType == SocketMessageType.Chat) else if (SocketObject.SocketType == SocketMessageType.Main_Chat)
{ {
// 收到房间聊天信息 // 收到房间聊天信息
string? user = "", msg = ""; string? user = "", msg = "";
@ -218,7 +218,7 @@ namespace Milimoe.FunGame.Desktop.Model
Main.GetMessage(msg, TimeType.None); Main.GetMessage(msg, TimeType.None);
} }
} }
else if (SocketObject.SocketType == SocketMessageType.UpdateRoomMaster) else if (SocketObject.SocketType == SocketMessageType.Room_UpdateRoomMaster)
{ {
// 收到房间更换房主的信息 // 收到房间更换房主的信息
User user = General.UnknownUserInstance; User user = General.UnknownUserInstance;

View File

@ -20,7 +20,7 @@ namespace Milimoe.FunGame.Desktop.Model
{ {
try try
{ {
if (SocketObject.SocketType == SocketMessageType.Reg || SocketObject.SocketType == SocketMessageType.CheckReg) if (SocketObject.SocketType == SocketMessageType.RunTime_Reg || SocketObject.SocketType == SocketMessageType.RunTime_CheckReg)
{ {
Work = SocketObject; Work = SocketObject;
Working = false; Working = false;
@ -47,7 +47,7 @@ namespace Milimoe.FunGame.Desktop.Model
password = password.Encrypt(username); password = password.Encrypt(username);
if (objs.Length > 2) email = (string)objs[2]; if (objs.Length > 2) email = (string)objs[2];
SetWorking(); SetWorking();
if (Socket.Send(SocketMessageType.Reg, username, email) == SocketResult.Success) if (Socket.Send(SocketMessageType.RunTime_Reg, username, email) == SocketResult.Success)
{ {
RegInvokeType InvokeType = await Task.Factory.StartNew(GetRegInvokeType); RegInvokeType InvokeType = await Task.Factory.StartNew(GetRegInvokeType);
while (true) while (true)
@ -59,7 +59,7 @@ namespace Milimoe.FunGame.Desktop.Model
if (cancel != MessageResult.Cancel) if (cancel != MessageResult.Cancel)
{ {
SetWorking(); SetWorking();
if (Socket.Send(SocketMessageType.CheckReg, username, password, email, verifycode) == SocketResult.Success) if (Socket.Send(SocketMessageType.RunTime_CheckReg, username, password, email, verifycode) == SocketResult.Success)
{ {
bool success = false; bool success = false;
string msg = ""; string msg = "";

View File

@ -59,10 +59,10 @@ namespace Milimoe.FunGame.Desktop.Model
// 设置可复用Socket // 设置可复用Socket
RunTime.Socket = Socket; RunTime.Socket = Socket;
// 发送连接请求 // 发送连接请求
if (Socket.Send(SocketMessageType.Connect) == SocketResult.Success) if (Socket.Send(SocketMessageType.RunTime_Connect) == SocketResult.Success)
{ {
SocketMessageType Result = Receiving(); SocketMessageType Result = Receiving();
if (Result == SocketMessageType.Connect) if (Result == SocketMessageType.RunTime_Connect)
{ {
Main.GetMessage("连接服务器成功请登录账号以体验FunGame。"); Main.GetMessage("连接服务器成功请登录账号以体验FunGame。");
Main.UpdateUI(MainInvokeType.Connected); Main.UpdateUI(MainInvokeType.Connected);

View File

@ -1,8 +1,6 @@
using Milimoe.FunGame.Core.Api.Transmittal; using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Core.Library.Constant;
using Milimoe.FunGame.Core.Library.Exception; using Milimoe.FunGame.Core.Library.Exception;
using Milimoe.FunGame.Core.Library.SQLScript.Common; using Milimoe.FunGame.Desktop.Controller;
using Milimoe.FunGame.Core.Library.SQLScript.Entity;
using Milimoe.FunGame.Desktop.Library; using Milimoe.FunGame.Desktop.Library;
using Milimoe.FunGame.Desktop.Library.Component; using Milimoe.FunGame.Desktop.Library.Component;
@ -33,83 +31,88 @@ namespace Milimoe.FunGame.Desktop.UI
return; return;
} }
string msg = ""; string msg;
bool success = false; bool success = false;
try try
{ {
DataRequest request = RunTime.NewDataRequest(DataRequestType.GetFindPasswordVerifyCode); // 发送找回密码请求
request.AddRequestData(UserQuery.Column_Username, username); msg = LoginController.ForgetPassword_CheckVerifyCode(username, email);
request.AddRequestData(UserQuery.Column_Email, email);
request.AddRequestData(ForgetVerifyCodes.Column_ForgetVerifyCode, ""); if (msg.Trim() != "")
request.SendRequest();
if (request.Result == RequestResult.Success)
{ {
msg = request.GetResult<string>("msg") ?? ""; // 如果返回一个信息,则停止找回密码
if (msg.Trim() != "") ShowMessage.ErrorMessage(msg);
}
else
{
while (!success)
{ {
// 如果返回一个信息,则停止找回密码 string verifycode = ShowMessage.InputMessageCancel("请输入找回密码邮件中的6位数字验证码", "注册验证码", out MessageResult result);
ShowMessage.ErrorMessage(msg); if (result != MessageResult.Cancel)
}
else
{
while (!success)
{ {
request[ForgetVerifyCodes.Column_ForgetVerifyCode] = ""; if (verifycode.Trim() != "")
string verifycode = ShowMessage.InputMessageCancel("请输入找回密码邮件中的6位数字验证码", "注册验证码", out MessageResult result);
if (result != MessageResult.Cancel)
{ {
if (verifycode.Trim() != "") msg = LoginController.ForgetPassword_CheckVerifyCode(username, email, verifycode);
if (msg.Trim() != "")
{ {
request[ForgetVerifyCodes.Column_ForgetVerifyCode] = verifycode; ShowMessage.ErrorMessage(msg);
request.SendRequest();
if (request.Result == RequestResult.Success)
{
msg = request.GetResult<string>("msg") ?? "";
if (msg.Trim() != "")
{
ShowMessage.ErrorMessage(msg);
}
else
{
success = true;
break;
}
}
else
{
RunTime.WritelnSystemInfo(request.Error);
}
} }
else else
{ {
ShowMessage.WarningMessage("不能输入空值!"); success = true;
break;
} }
} }
else break; else
} {
if (success) ShowMessage.WarningMessage("不能输入空值!");
{ }
bool checkpass = true; }
while (checkpass) else break;
}
if (success)
{
while (true)
{
string newpass = ShowMessage.InputMessageCancel("请输入新密码", "设置新密码", out MessageResult result);
if (result != MessageResult.Cancel)
{ {
string newpass = ShowMessage.InputMessageCancel("请输入新密码", "新密码", out MessageResult result);
if (newpass.Trim() != "") if (newpass.Trim() != "")
{ {
if (newpass.Length < 6 || newpass.Length > 15) // 字节范围 3~12 if (newpass.Length < 6 || newpass.Length > 15) // 字节范围 3~12
{ {
ShowMessage.ErrorMessage("密码长度不符合要求6~15个字符数"); ShowMessage.ErrorMessage("密码长度不符合要求6~15个字符数");
} }
else checkpass = false; else
{
msg = LoginController.ForgetPassword_UpdatePassword(username, newpass);
if (msg.Trim() != "")
{
ShowMessage.ErrorMessage(msg);
}
else
{
ShowMessage.Message("密码更新成功!请您牢记新的密码。", "找回密码");
break;
}
}
}
}
else
{
if (ShowMessage.OKCancelMessage("确定放弃设置新密码吗?", "找回密码") == MessageResult.OK)
{
success = false;
break;
} }
} }
// TODO. 等更新UpdatePassword
} }
} }
} if (success)
else {
{ Dispose();
RunTime.WritelnSystemInfo(request.Error); }
} }
} }
catch (Exception ex) catch (Exception ex)

View File

@ -80,6 +80,7 @@ namespace Milimoe.FunGame.Desktop.UI
private void ForgetPassword_Click(object sender, EventArgs e) private void ForgetPassword_Click(object sender, EventArgs e)
{ {
OpenForm.SingleForm(FormType.ForgetPassword, OpenFormType.Dialog); OpenForm.SingleForm(FormType.ForgetPassword, OpenFormType.Dialog);
UsernameText.Focus();
} }
public EventResult FailedLoginEvent(object sender, LoginEventArgs e) public EventResult FailedLoginEvent(object sender, LoginEventArgs e)

View File

@ -81,7 +81,7 @@ namespace Milimoe.FunGame.Desktop.UI
Title.Location = new Point(3, 3); Title.Location = new Point(3, 3);
Title.Size = new Size(689, 47); Title.Size = new Size(689, 47);
Title.TabIndex = 96; Title.TabIndex = 96;
Title.Text = "FunGame By Mili.cyou"; Title.Text = "FunGame By Milimoe";
Title.TextAlign = ContentAlignment.MiddleLeft; Title.TextAlign = ContentAlignment.MiddleLeft;
// //
// Exit // Exit
@ -519,7 +519,7 @@ namespace Milimoe.FunGame.Desktop.UI
Copyright.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right; Copyright.Anchor = AnchorStyles.Top | AnchorStyles.Bottom | AnchorStyles.Left | AnchorStyles.Right;
Copyright.BackColor = Color.Transparent; Copyright.BackColor = Color.Transparent;
Copyright.Font = new Font("LanaPixel", 10.5F, FontStyle.Regular, GraphicsUnit.Point); Copyright.Font = new Font("LanaPixel", 10.5F, FontStyle.Regular, GraphicsUnit.Point);
Copyright.LinkArea = new LinkArea(6, 10); Copyright.LinkArea = new LinkArea(6, 8);
Copyright.LinkBehavior = LinkBehavior.AlwaysUnderline; Copyright.LinkBehavior = LinkBehavior.AlwaysUnderline;
Copyright.LinkColor = Color.Teal; Copyright.LinkColor = Color.Teal;
Copyright.Location = new Point(3, 430); Copyright.Location = new Point(3, 430);
@ -527,7 +527,7 @@ namespace Milimoe.FunGame.Desktop.UI
Copyright.Size = new Size(186, 23); Copyright.Size = new Size(186, 23);
Copyright.TabIndex = 97; Copyright.TabIndex = 97;
Copyright.TabStop = true; Copyright.TabStop = true;
Copyright.Text = "©2023 Mili.cyou. 米粒的糖果屋"; Copyright.Text = "©2023 Milimoe. 米粒的糖果屋";
Copyright.TextAlign = ContentAlignment.MiddleLeft; Copyright.TextAlign = ContentAlignment.MiddleLeft;
Copyright.UseCompatibleTextRendering = true; Copyright.UseCompatibleTextRendering = true;
Copyright.LinkClicked += Copyright_LinkClicked; Copyright.LinkClicked += Copyright_LinkClicked;

View File

@ -1370,8 +1370,8 @@ namespace Milimoe.FunGame.Desktop.UI
ShowMessage.ErrorMessage("格式错误!\n这不是一个服务器地址。"); ShowMessage.ErrorMessage("格式错误!\n这不是一个服务器地址。");
return true; return true;
} }
ErrorType ErrorType = NetworkUtility.IsServerAddress(ip, port); ErrorIPAddressType ErrorType = NetworkUtility.IsServerAddress(ip, port);
if (ErrorType == Core.Library.Constant.ErrorType.None) if (ErrorType == Core.Library.Constant.ErrorIPAddressType.None)
{ {
RunTime.Session.Server_IP = ip; RunTime.Session.Server_IP = ip;
RunTime.Session.Server_Port = port; RunTime.Session.Server_Port = port;
@ -1379,8 +1379,8 @@ namespace Milimoe.FunGame.Desktop.UI
Config.FunGame_isAutoRetry = true; Config.FunGame_isAutoRetry = true;
RunTime.Controller?.Connect(); RunTime.Controller?.Connect();
} }
else if (ErrorType == Core.Library.Constant.ErrorType.IsNotIP) ShowMessage.ErrorMessage("这不是一个IP地址"); else if (ErrorType == Core.Library.Constant.ErrorIPAddressType.IsNotIP) ShowMessage.ErrorMessage("这不是一个IP地址");
else if (ErrorType == Core.Library.Constant.ErrorType.IsNotPort) ShowMessage.ErrorMessage("这不是一个端口号!\n正确范围1~65535"); else if (ErrorType == Core.Library.Constant.ErrorIPAddressType.IsNotPort) ShowMessage.ErrorMessage("这不是一个端口号!\n正确范围1~65535");
else ShowMessage.ErrorMessage("格式错误!\n这不是一个服务器地址。"); else ShowMessage.ErrorMessage("格式错误!\n这不是一个服务器地址。");
break; break;
default: default: