diff --git a/软件系统客户端模版/FormMainWindow.cs b/软件系统客户端模版/FormMainWindow.cs index 6072799..ecc289d 100644 --- a/软件系统客户端模版/FormMainWindow.cs +++ b/软件系统客户端模版/FormMainWindow.cs @@ -91,8 +91,8 @@ namespace 软件系统客户端模版 IsWindowShow = true; - //是否显示更新日志 - if(UserClient.JsonSettings.IsNewVersionRunning) + //是否显示更新日志,显示前进行判断该版本是否已经显示过了 + if (UserClient.JsonSettings.IsNewVersionRunning) { UserClient.JsonSettings.IsNewVersionRunning = false; UserClient.JsonSettings.SaveToFile(); @@ -100,7 +100,7 @@ namespace 软件系统客户端模版 } //根据权限使能菜单 - if(UserClient.UserAccount.Grade /// A指令块,处理系统基础运行的消息 /// - /// - /// + /// 网络状态对象 + /// 实际的数据 private void DataProcessingWithStartA(AsyncStateBase object1, string object2) { string headCode = object2.Substring(0, 4); @@ -494,7 +497,9 @@ namespace 软件系统服务端模版 #endregion #region 异步数据传送引擎 - //异步客户端管理引擎 + /// + /// 异步客户端管理引擎,维护所有的客户端在线情况,支持主动发数据到所有的客户端 + /// private Net_Socket_Server net_socket_server = new Net_Socket_Server(); /// /// 异步传送数据的初始化 @@ -506,12 +511,12 @@ namespace 软件系统服务端模版 net_socket_server.KeyToken = CommonHeadCode.KeyToken;//设置身份令牌 net_socket_server.LogHelper.LogSaveFileName = Application.StartupPath + @"\net_log.txt"; net_socket_server.FormatClientOnline = "#IP:{0} Name:{1}";//必须为#开头,具体格式可由自身需求确定 - net_socket_server.IsSaveLogClientLineChange = true; - net_socket_server.ClientOnline += Net_socket_server_ClientOnline; - net_socket_server.ClientOffline += Net_socket_server_ClientOffline; - net_socket_server.MessageAlerts += Net_socket_server_MessageAlerts; - net_socket_server.AcceptByte += Net_socket_server_AcceptByte; - net_socket_server.AcceptString += Net_socket_server_AcceptString; + net_socket_server.IsSaveLogClientLineChange = true;//设置客户端上下线是否记录到日志 + net_socket_server.ClientOnline += Net_socket_server_ClientOnline;//客户端上线触发 + net_socket_server.ClientOffline += Net_socket_server_ClientOffline;//客户端下线触发,包括异常掉线 + net_socket_server.MessageAlerts += Net_socket_server_MessageAlerts;//服务器产生提示消息触发 + net_socket_server.AcceptByte += Net_socket_server_AcceptByte;//服务器接收到字节数据触发 + net_socket_server.AcceptString += Net_socket_server_AcceptString;//服务器接收到字符串数据触发 net_socket_server.ServerStart(CommonLibrary.CommonLibrary.Port_Main_Net); } catch (Exception ex) @@ -581,6 +586,10 @@ namespace 软件系统服务端模版 { "FileCount", new JValue(net_simple_file_server.File_Count()) } }; 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() + ":" + object1.LoginAlias + " 上线"); @@ -596,8 +605,6 @@ namespace 软件系统服务端模版 textBox1.AppendText(str + Environment.NewLine); listBox1.DataSource = net_socket_server.AllClients.Split('#'); label4.Text = net_socket_server.ClientCount.ToString(); - //此处决定要不要将在线客户端的数据发送所有客户端 - net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.所有客户端在线信息 + net_socket_server.AllClients); })); } } @@ -605,9 +612,18 @@ namespace 软件系统服务端模版 #endregion #region 后台计数线程 - //============================================================================= - //后台计数的线程 + + /********************************************************************************************* + * + * 说明 一个后台线程,用来执行一些周期执行的东西 + * 注意 它不仅执行每秒触发的代码,也支持每分钟,每天,每月,每年等等 + * + ********************************************************************************************/ + + /// + /// 初始化后台的计数线程 + /// public void TimeTickInitilization() { toolStripStatusLabel_time.Alignment = ToolStripItemAlignment.Right; @@ -623,6 +639,9 @@ namespace 软件系统服务端模版 { Thread.Sleep(300);//加一个微小的延时 int second = DateTime.Now.Second - 1; + int minute = -1; + int hour = -1; + int day = -1; Action DTimeShow = delegate { toolStripStatusLabel_time.Text = DateTime.Now.ToString(); @@ -642,6 +661,21 @@ namespace 软件系统服务端模版 net_socket_server.SendAllClients(CommonHeadCode.MultiNetHeadCode.时间推送 + 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 #region 共享文件下载块 - + /// + /// 共享文件服务器引擎 + /// private SimpleShareFileServer net_simple_file_server { get; set; } = null; - + /// + /// 共享文件服务引擎初始化 + /// private void Simple_File_Initiaization() { try