完善服务器客户端部分代码的注释

This commit is contained in:
dathlin
2017-05-30 16:33:14 +08:00
parent 6d7364fdf8
commit 3bb745423d
2 changed files with 87 additions and 48 deletions

View File

@@ -91,8 +91,8 @@ namespace 软件系统客户端模版
IsWindowShow = true; IsWindowShow = true;
//是否显示更新日志 //是否显示更新日志,显示前进行判断该版本是否已经显示过了
if(UserClient.JsonSettings.IsNewVersionRunning) if (UserClient.JsonSettings.IsNewVersionRunning)
{ {
UserClient.JsonSettings.IsNewVersionRunning = false; UserClient.JsonSettings.IsNewVersionRunning = false;
UserClient.JsonSettings.SaveToFile(); UserClient.JsonSettings.SaveToFile();
@@ -100,7 +100,7 @@ namespace 软件系统客户端模版
} }
//根据权限使能菜单 //根据权限使能菜单
if(UserClient.UserAccount.Grade<AccountGrade.SuperAdministrator) if (UserClient.UserAccount.Grade < AccountGrade.SuperAdministrator)
{ {
ToolStripMenuItem.Enabled = false; ToolStripMenuItem.Enabled = false;
ToolStripMenuItem.Enabled = false; ToolStripMenuItem.Enabled = false;
@@ -111,7 +111,7 @@ namespace 软件系统客户端模版
{ {
//窗口关闭 //窗口关闭
IsWindowShow = false; IsWindowShow = false;
//通知服务器退出网络服务
net_socket_client.ClientClose(); net_socket_client.ClientClose();
//等待一秒退出 //等待一秒退出
@@ -461,6 +461,7 @@ namespace 软件系统客户端模版
private void label_file_count_Click(object sender, EventArgs e) private void label_file_count_Click(object sender, EventArgs e)
{ {
//点击查看了共享文件
SetShowRenderControl(UIControls_Files); SetShowRenderControl(UIControls_Files);
UIControls_Files.UpdateFiles(); UIControls_Files.UpdateFiles();
} }

View File

@@ -13,30 +13,33 @@ using Newtonsoft.Json.Linq;
using HslCommunication.BasicFramework; using HslCommunication.BasicFramework;
//============================================================================ /******************************************************************************************
// 模版日期 2017-05-18 *
// 创建人 胡少林 * 模版日期 2017-05-30
// 版权所有 胡少林 * 创建人 Richard.Hu
// 授权说明 模版仅授权个人使用如需商用请联系hsl200909@163.com洽谈 * 版权所有 Richard.Hu
// 说明 JSON组件引用自james newton-king遵循MIT授权协议 * 授权说明 模版仅授权个人使用如需商用请联系hsl200909@163.com洽谈
//============================================================================ * 说明 JSON组件引用自james newton-king遵循MIT授权协议
* 网络组件 网络组件的版权由Richard.Hu所有
*
********************************************************************************************/
//============================================================================ /******************************************************************************************
// *
// 注意:本代码的相关操作未作密码验证,如有需要,请自行完成 * 注意:本代码的相关操作未作密码验证,如有需要,请自行完成
// 示例具体示例参照本页面Form1_FormClosing(object sender, FormClosingEventArgs e)方法 * 示例具体示例参照本页面Form1_FormClosing(object sender, FormClosingEventArgs e)方法
// *
//============================================================================ ********************************************************************************************/
//============================================================================ /******************************************************************************************
// *
// 本项目模版不包含 《软件自动更新.exe》 * 本项目模版不包含 《软件自动更新.exe》
// 如需支持部署环境的自动升级 请联系hsl200909@163.com获取 * 如需支持部署环境的自动升级 请联系hsl200909@163.com获取
// 软件自动更新.exe 将绑定IP端口和软件名称后授权销售30元人民币一组永久使用 * 软件自动更新.exe 将绑定IP端口和软件名称后授权销售30元人民币一组永久使用
// *
//============================================================================ ********************************************************************************************/
@@ -119,11 +122,11 @@ namespace 软件系统服务端模版
{ {
if (!IsSystemStart) if (!IsSystemStart)
{ {
Net_Simplify_Server_Initialization(); Net_Simplify_Server_Initialization();//同步网络初始化
Net_Socket_Server_Initialization(); Net_Socket_Server_Initialization();//异步网络初始化
Net_SoftUpdate_Server_Initialization(); Net_SoftUpdate_Server_Initialization();//软件更新引擎初始化
Net_File_Update_Initialization(); Net_File_Update_Initialization();//软件异地更新引擎初始化
Simple_File_Initiaization(); Simple_File_Initiaization();//共享文件引擎初始化
ToolStripMenuItem.Text = "已启动"; ToolStripMenuItem.Text = "已启动";
ToolStripMenuItem.BackColor = Color.LimeGreen; ToolStripMenuItem.BackColor = Color.LimeGreen;
IsSystemStart = true; IsSystemStart = true;
@@ -234,7 +237,7 @@ namespace 软件系统服务端模版
//在服务器的这个路径下放置客户端运行的所有文件不要包含settings文件不要从此处运行 //在服务器的这个路径下放置客户端运行的所有文件不要包含settings文件不要从此处运行
//只放置exe和dll组件必须放置软件自动更新.exe //只放置exe和dll组件必须放置软件自动更新.exe
net_soft_update_Server.KeyToken = CommonHeadCode.KeyToken; net_soft_update_Server.KeyToken = CommonHeadCode.KeyToken;
net_soft_update_Server.FileUpdatePath = Application.StartupPath + @"\ClientFiles"; net_soft_update_Server.FileUpdatePath = Application.StartupPath + @"\ClientFiles";//客户端文件路径
net_soft_update_Server.ServerStart(CommonLibrary.CommonLibrary.Port_Update_Net); net_soft_update_Server.ServerStart(CommonLibrary.CommonLibrary.Port_Update_Net);
} }
catch (Exception ex) catch (Exception ex)
@@ -282,9 +285,9 @@ namespace 软件系统服务端模版
try try
{ {
net_simplify_server.KeyToken = CommonHeadCode.KeyToken;//设置身份令牌 net_simplify_server.KeyToken = CommonHeadCode.KeyToken;//设置身份令牌
net_simplify_server.LogHelper.LogSaveFileName = Application.StartupPath + @"\simplify_log.txt"; net_simplify_server.LogHelper.LogSaveFileName = Application.StartupPath + @"\simplify_log.txt";//日志路径
net_simplify_server.ReceiveStringEvent += Net_simplify_server_ReceiveStringEvent; net_simplify_server.ReceiveStringEvent += Net_simplify_server_ReceiveStringEvent;//接收到字符串触发
net_simplify_server.ReceivedBytesEvent += Net_simplify_server_ReceivedBytesEvent; net_simplify_server.ReceivedBytesEvent += Net_simplify_server_ReceivedBytesEvent;//接收到字节触发
net_simplify_server.ServerStart(CommonLibrary.CommonLibrary.Port_Second_Net); net_simplify_server.ServerStart(CommonLibrary.CommonLibrary.Port_Second_Net);
} }
catch (Exception ex) catch (Exception ex)
@@ -334,8 +337,8 @@ namespace 软件系统服务端模版
/// <summary> /// <summary>
/// A指令块处理系统基础运行的消息 /// A指令块处理系统基础运行的消息
/// </summary> /// </summary>
/// <param name="object1"></param> /// <param name="object1">网络状态对象</param>
/// <param name="object2"></param> /// <param name="object2">实际的数据</param>
private void DataProcessingWithStartA(AsyncStateBase object1, string object2) private void DataProcessingWithStartA(AsyncStateBase object1, string object2)
{ {
string headCode = object2.Substring(0, 4); string headCode = object2.Substring(0, 4);
@@ -494,7 +497,9 @@ namespace 软件系统服务端模版
#endregion #endregion
#region #region
//异步客户端管理引擎 /// <summary>
/// 异步客户端管理引擎,维护所有的客户端在线情况,支持主动发数据到所有的客户端
/// </summary>
private Net_Socket_Server net_socket_server = new Net_Socket_Server(); private Net_Socket_Server net_socket_server = new Net_Socket_Server();
/// <summary> /// <summary>
/// 异步传送数据的初始化 /// 异步传送数据的初始化
@@ -506,12 +511,12 @@ namespace 软件系统服务端模版
net_socket_server.KeyToken = CommonHeadCode.KeyToken;//设置身份令牌 net_socket_server.KeyToken = CommonHeadCode.KeyToken;//设置身份令牌
net_socket_server.LogHelper.LogSaveFileName = Application.StartupPath + @"\net_log.txt"; net_socket_server.LogHelper.LogSaveFileName = Application.StartupPath + @"\net_log.txt";
net_socket_server.FormatClientOnline = "#IP:{0} Name:{1}";//必须为#开头,具体格式可由自身需求确定 net_socket_server.FormatClientOnline = "#IP:{0} Name:{1}";//必须为#开头,具体格式可由自身需求确定
net_socket_server.IsSaveLogClientLineChange = true; net_socket_server.IsSaveLogClientLineChange = true;//设置客户端上下线是否记录到日志
net_socket_server.ClientOnline += Net_socket_server_ClientOnline; net_socket_server.ClientOnline += Net_socket_server_ClientOnline;//客户端上线触发
net_socket_server.ClientOffline += Net_socket_server_ClientOffline; net_socket_server.ClientOffline += Net_socket_server_ClientOffline;//客户端下线触发,包括异常掉线
net_socket_server.MessageAlerts += Net_socket_server_MessageAlerts; net_socket_server.MessageAlerts += Net_socket_server_MessageAlerts;//服务器产生提示消息触发
net_socket_server.AcceptByte += Net_socket_server_AcceptByte; net_socket_server.AcceptByte += Net_socket_server_AcceptByte;//服务器接收到字节数据触发
net_socket_server.AcceptString += Net_socket_server_AcceptString; net_socket_server.AcceptString += Net_socket_server_AcceptString;//服务器接收到字符串数据触发
net_socket_server.ServerStart(CommonLibrary.CommonLibrary.Port_Main_Net); net_socket_server.ServerStart(CommonLibrary.CommonLibrary.Port_Main_Net);
} }
catch (Exception ex) catch (Exception ex)
@@ -581,6 +586,10 @@ namespace 软件系统服务端模版
{ "FileCount", new JValue(net_simple_file_server.File_Count()) } { "FileCount", new JValue(net_simple_file_server.File_Count()) }
}; };
net_socket_server.Send(object1, CommonHeadCode.MultiNetHeadCode. + json.ToString()); net_socket_server.Send(object1, CommonHeadCode.MultiNetHeadCode. + json.ToString());
//此处决定要不要将在线客户端的数据发送所有客户端
net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.线 + net_socket_server.AllClients);
//触发上下线功能 //触发上下线功能
Net_socket_clients_change(DateTime.Now.ToString("MM-dd HH:mm:ss ") + object1._IpEnd_Point.Address.ToString() + "" + Net_socket_clients_change(DateTime.Now.ToString("MM-dd HH:mm:ss ") + object1._IpEnd_Point.Address.ToString() + "" +
object1.LoginAlias + " 上线"); object1.LoginAlias + " 上线");
@@ -596,8 +605,6 @@ namespace 软件系统服务端模版
textBox1.AppendText(str + Environment.NewLine); textBox1.AppendText(str + Environment.NewLine);
listBox1.DataSource = net_socket_server.AllClients.Split('#'); listBox1.DataSource = net_socket_server.AllClients.Split('#');
label4.Text = net_socket_server.ClientCount.ToString(); label4.Text = net_socket_server.ClientCount.ToString();
//此处决定要不要将在线客户端的数据发送所有客户端
net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.线 + net_socket_server.AllClients);
})); }));
} }
} }
@@ -605,9 +612,18 @@ namespace 软件系统服务端模版
#endregion #endregion
#region 线 #region 线
//=============================================================================
//后台计数的线程 /*********************************************************************************************
*
* 说明 一个后台线程,用来执行一些周期执行的东西
* 注意 它不仅执行每秒触发的代码,也支持每分钟,每天,每月,每年等等
*
********************************************************************************************/
/// <summary>
/// 初始化后台的计数线程
/// </summary>
public void TimeTickInitilization() public void TimeTickInitilization()
{ {
toolStripStatusLabel_time.Alignment = ToolStripItemAlignment.Right; toolStripStatusLabel_time.Alignment = ToolStripItemAlignment.Right;
@@ -623,6 +639,9 @@ namespace 软件系统服务端模版
{ {
Thread.Sleep(300);//加一个微小的延时 Thread.Sleep(300);//加一个微小的延时
int second = DateTime.Now.Second - 1; int second = DateTime.Now.Second - 1;
int minute = -1;
int hour = -1;
int day = -1;
Action DTimeShow = delegate Action DTimeShow = delegate
{ {
toolStripStatusLabel_time.Text = DateTime.Now.ToString(); toolStripStatusLabel_time.Text = DateTime.Now.ToString();
@@ -642,6 +661,21 @@ namespace 软件系统服务端模版
net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode. + net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode. +
DateTime.Now.ToString("O")); DateTime.Now.ToString("O"));
} }
if (minute != DateTime.Now.Minute)
{
minute = DateTime.Now.Minute;
//每分钟执行的代码
}
if (hour != DateTime.Now.Hour)
{
hour = DateTime.Now.Hour;
//每小时执行的代码
}
if (day != DateTime.Now.Day)
{
day = DateTime.Now.Day;
//每天执行的代码
}
} }
} }
@@ -649,9 +683,13 @@ namespace 软件系统服务端模版
#endregion #endregion
#region #region
/// <summary>
/// 共享文件服务器引擎
/// </summary>
private SimpleShareFileServer net_simple_file_server { get; set; } = null; private SimpleShareFileServer net_simple_file_server { get; set; } = null;
/// <summary>
/// 共享文件服务引擎初始化
/// </summary>
private void Simple_File_Initiaization() private void Simple_File_Initiaization()
{ {
try try