网络组件更新,用户暗号重新设计,个人信息界面文件上传支持拖拽
This commit is contained in:
@@ -27,15 +27,23 @@ namespace ClientsLibrary
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 系统统一的登录模型
|
/// 系统统一的登录模型
|
||||||
/// </summary>
|
/// </summary>
|
||||||
/// <param name="message_show"></param>
|
/// <param name="message_show">信息提示方法</param>
|
||||||
/// <param name="start_update"></param>
|
/// <param name="start_update">启动更新方法</param>
|
||||||
/// <param name="thread_finish"></param>
|
/// <param name="thread_finish">线程结束后的复原方法</param>
|
||||||
/// <param name="userName"></param>
|
/// <param name="userName">用户名</param>
|
||||||
/// <param name="password"></param>
|
/// <param name="password">密码</param>
|
||||||
/// <param name="remember"></param>
|
/// <param name="remember">是否记住登录密码</param>
|
||||||
/// <param name="clientType"></param>
|
/// <param name="clientType">客户端登录类型</param>
|
||||||
/// <returns></returns>
|
/// <returns></returns>
|
||||||
public static bool AccountLoginServer(Action<string> message_show, Action start_update, Action thread_finish,string userName,string password,bool remember,string clientType)
|
public static bool AccountLoginServer(
|
||||||
|
Action<string> message_show,
|
||||||
|
Action start_update,
|
||||||
|
Action thread_finish,
|
||||||
|
string userName,
|
||||||
|
string password,
|
||||||
|
bool remember,
|
||||||
|
string clientType
|
||||||
|
)
|
||||||
{
|
{
|
||||||
message_show.Invoke("正在维护检查...");
|
message_show.Invoke("正在维护检查...");
|
||||||
|
|
||||||
|
|||||||
@@ -28,7 +28,7 @@
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
private void InitializeComponent()
|
private void InitializeComponent()
|
||||||
{
|
{
|
||||||
System.Windows.Forms.TreeNode treeNode4 = new System.Windows.Forms.TreeNode("我的文件(下载中)");
|
System.Windows.Forms.TreeNode treeNode1 = new System.Windows.Forms.TreeNode("我的文件(下载中)");
|
||||||
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
this.groupBox1 = new System.Windows.Forms.GroupBox();
|
||||||
this.pictureBox_UserPortrait = new System.Windows.Forms.PictureBox();
|
this.pictureBox_UserPortrait = new System.Windows.Forms.PictureBox();
|
||||||
this.label12 = new System.Windows.Forms.Label();
|
this.label12 = new System.Windows.Forms.Label();
|
||||||
@@ -55,10 +55,10 @@
|
|||||||
this.textBox_UserName = new System.Windows.Forms.TextBox();
|
this.textBox_UserName = new System.Windows.Forms.TextBox();
|
||||||
this.label1 = new System.Windows.Forms.Label();
|
this.label1 = new System.Windows.Forms.Label();
|
||||||
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
this.groupBox2 = new System.Windows.Forms.GroupBox();
|
||||||
this.treeView1 = new System.Windows.Forms.TreeView();
|
|
||||||
this.userButton2 = new HslCommunication.Controls.UserButton();
|
this.userButton2 = new HslCommunication.Controls.UserButton();
|
||||||
this.userButton1 = new HslCommunication.Controls.UserButton();
|
this.userButton1 = new HslCommunication.Controls.UserButton();
|
||||||
this.userButton_upload = new HslCommunication.Controls.UserButton();
|
this.userButton_upload = new HslCommunication.Controls.UserButton();
|
||||||
|
this.treeView1 = new System.Windows.Forms.TreeView();
|
||||||
this.groupBox1.SuspendLayout();
|
this.groupBox1.SuspendLayout();
|
||||||
((System.ComponentModel.ISupportInitialize)(this.pictureBox_UserPortrait)).BeginInit();
|
((System.ComponentModel.ISupportInitialize)(this.pictureBox_UserPortrait)).BeginInit();
|
||||||
this.groupBox2.SuspendLayout();
|
this.groupBox2.SuspendLayout();
|
||||||
@@ -331,21 +331,7 @@
|
|||||||
this.groupBox2.Size = new System.Drawing.Size(373, 492);
|
this.groupBox2.Size = new System.Drawing.Size(373, 492);
|
||||||
this.groupBox2.TabIndex = 1;
|
this.groupBox2.TabIndex = 1;
|
||||||
this.groupBox2.TabStop = false;
|
this.groupBox2.TabStop = false;
|
||||||
this.groupBox2.Text = "个人文件";
|
this.groupBox2.Text = "个人文件,支持拖拽";
|
||||||
//
|
|
||||||
// treeView1
|
|
||||||
//
|
|
||||||
this.treeView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
|
||||||
| System.Windows.Forms.AnchorStyles.Left)));
|
|
||||||
this.treeView1.Location = new System.Drawing.Point(10, 24);
|
|
||||||
this.treeView1.Name = "treeView1";
|
|
||||||
treeNode4.Name = "files_root";
|
|
||||||
treeNode4.Text = "我的文件(下载中)";
|
|
||||||
this.treeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
|
|
||||||
treeNode4});
|
|
||||||
this.treeView1.ShowLines = false;
|
|
||||||
this.treeView1.Size = new System.Drawing.Size(353, 429);
|
|
||||||
this.treeView1.TabIndex = 0;
|
|
||||||
//
|
//
|
||||||
// userButton2
|
// userButton2
|
||||||
//
|
//
|
||||||
@@ -392,7 +378,24 @@
|
|||||||
this.userButton_upload.UIText = "上传";
|
this.userButton_upload.UIText = "上传";
|
||||||
this.userButton_upload.Click += new System.EventHandler(this.userButton_upload_Click);
|
this.userButton_upload.Click += new System.EventHandler(this.userButton_upload_Click);
|
||||||
//
|
//
|
||||||
// AccountDetails
|
// treeView1
|
||||||
|
//
|
||||||
|
this.treeView1.AllowDrop = true;
|
||||||
|
this.treeView1.Anchor = ((System.Windows.Forms.AnchorStyles)(((System.Windows.Forms.AnchorStyles.Top | System.Windows.Forms.AnchorStyles.Bottom)
|
||||||
|
| System.Windows.Forms.AnchorStyles.Left)));
|
||||||
|
this.treeView1.Location = new System.Drawing.Point(10, 24);
|
||||||
|
this.treeView1.Name = "treeView1";
|
||||||
|
treeNode1.Name = "files_root";
|
||||||
|
treeNode1.Text = "我的文件(下载中)";
|
||||||
|
this.treeView1.Nodes.AddRange(new System.Windows.Forms.TreeNode[] {
|
||||||
|
treeNode1});
|
||||||
|
this.treeView1.ShowLines = false;
|
||||||
|
this.treeView1.Size = new System.Drawing.Size(353, 429);
|
||||||
|
this.treeView1.TabIndex = 0;
|
||||||
|
this.treeView1.DragDrop += new System.Windows.Forms.DragEventHandler(this.treeView1_DragDrop);
|
||||||
|
this.treeView1.DragEnter += new System.Windows.Forms.DragEventHandler(this.treeView1_DragEnter);
|
||||||
|
//
|
||||||
|
// FormAccountDetails
|
||||||
//
|
//
|
||||||
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
|
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 17F);
|
||||||
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
|
||||||
@@ -404,7 +407,7 @@
|
|||||||
this.MaximizeBox = false;
|
this.MaximizeBox = false;
|
||||||
this.MaximumSize = new System.Drawing.Size(722, 555);
|
this.MaximumSize = new System.Drawing.Size(722, 555);
|
||||||
this.MinimumSize = new System.Drawing.Size(722, 555);
|
this.MinimumSize = new System.Drawing.Size(722, 555);
|
||||||
this.Name = "AccountDetails";
|
this.Name = "FormAccountDetails";
|
||||||
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
this.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent;
|
||||||
this.Text = "AccountDetails";
|
this.Text = "AccountDetails";
|
||||||
this.Load += new System.EventHandler(this.AccountDetails_Load);
|
this.Load += new System.EventHandler(this.AccountDetails_Load);
|
||||||
|
|||||||
@@ -11,6 +11,7 @@ using System.Threading;
|
|||||||
using System.Windows.Forms;
|
using System.Windows.Forms;
|
||||||
using HslCommunication;
|
using HslCommunication;
|
||||||
using HslCommunication.BasicFramework;
|
using HslCommunication.BasicFramework;
|
||||||
|
using System.IO;
|
||||||
|
|
||||||
namespace ClientsLibrary
|
namespace ClientsLibrary
|
||||||
{
|
{
|
||||||
@@ -153,19 +154,23 @@ namespace ClientsLibrary
|
|||||||
{
|
{
|
||||||
openFileDialog.Multiselect = true;
|
openFileDialog.Multiselect = true;
|
||||||
if(openFileDialog.ShowDialog()==DialogResult.OK)
|
if(openFileDialog.ShowDialog()==DialogResult.OK)
|
||||||
|
{
|
||||||
|
UploadFilesToServer(openFileDialog.FileNames);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void UploadFilesToServer(string[] files)
|
||||||
{
|
{
|
||||||
FormFileOperate upload = new FormFileOperate(UserClient.Net_File_Client,
|
FormFileOperate upload = new FormFileOperate(UserClient.Net_File_Client,
|
||||||
openFileDialog.FileNames,
|
files,
|
||||||
"Files",
|
"Files",
|
||||||
"Personal",
|
"Personal",
|
||||||
UserClient.UserAccount.UserName);
|
UserClient.UserAccount.UserName);
|
||||||
upload.ShowDialog();
|
upload.ShowDialog();
|
||||||
|
|
||||||
// 更新文件列表
|
// 更新文件列表
|
||||||
DownloadUserFileNames();
|
DownloadUserFileNames();
|
||||||
}
|
}
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private void userButton1_Click(object sender, EventArgs e)
|
private void userButton1_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
@@ -223,8 +228,65 @@ namespace ClientsLibrary
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
private void treeView1_DragDrop(object sender, DragEventArgs e)
|
||||||
|
{
|
||||||
|
if (e.Data.GetDataPresent(DataFormats.FileDrop))
|
||||||
|
{
|
||||||
|
string[] paths = e.Data.GetData(DataFormats.FileDrop) as string[];
|
||||||
|
if (paths != null)
|
||||||
|
{
|
||||||
|
List<string> files = new List<string>();
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
foreach (var m in paths)
|
||||||
|
{
|
||||||
|
FileInfo finfo = new FileInfo(m);
|
||||||
|
if (finfo.Attributes == FileAttributes.Directory)
|
||||||
|
{
|
||||||
|
foreach (var n in Directory.GetFiles(m))
|
||||||
|
{
|
||||||
|
files.Add(n);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
files.Add(m);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
catch(Exception ex)
|
||||||
|
{
|
||||||
|
UserClient.LogNet?.WriteException("拖拽文件上传异常:", ex);
|
||||||
|
SoftBasic.ShowExceptionMessage(ex);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
if (files.Count > 0)
|
||||||
|
{
|
||||||
|
Invoke(new Action(() =>
|
||||||
|
{
|
||||||
|
UploadFilesToServer(files.ToArray());
|
||||||
|
}));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void treeView1_DragEnter(object sender, DragEventArgs e)
|
||||||
|
{
|
||||||
|
if(e.Data.GetDataPresent(DataFormats.FileDrop))
|
||||||
|
{
|
||||||
|
e.Effect = DragDropEffects.Link;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
e.Effect = DragDropEffects.None;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -41,7 +41,7 @@ namespace ClientsLibrary
|
|||||||
/// 服务器的IP地址,默认为127.0.0.1,可用于单机调试,
|
/// 服务器的IP地址,默认为127.0.0.1,可用于单机调试,
|
||||||
/// 云服务器端:117.48.203.204,注意,云端为最新版,客户端版本比较旧会调试失败
|
/// 云服务器端:117.48.203.204,注意,云端为最新版,客户端版本比较旧会调试失败
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static string ServerIp { get; } = "127.0.0.1";//用于测试的云服务器地址
|
public static string ServerIp { get; } = "117.48.203.204";//用于测试的云服务器地址
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
@@ -89,10 +89,9 @@ namespace ClientsLibrary
|
|||||||
/// 用于访问服务器数据的网络对象类,必须修改这个端口参数,否则运行失败
|
/// 用于访问服务器数据的网络对象类,必须修改这个端口参数,否则运行失败
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static NetSimplifyClient Net_simplify_client { get; set; } = new NetSimplifyClient(
|
public static NetSimplifyClient Net_simplify_client { get; set; } = new NetSimplifyClient(
|
||||||
new System.Net.IPEndPoint(System.Net.IPAddress.Parse(ServerIp),
|
new IPEndPoint(IPAddress.Parse(ServerIp), CommonProtocol.Port_Second_Net))
|
||||||
CommonLibrary.CommonProtocol.Port_Second_Net))
|
|
||||||
{
|
{
|
||||||
KeyToken = CommonLibrary.CommonProtocol.KeyToken,
|
KeyToken = CommonProtocol.KeyToken,
|
||||||
ConnectTimeout = 5000,
|
ConnectTimeout = 5000,
|
||||||
};
|
};
|
||||||
|
|
||||||
@@ -100,10 +99,9 @@ namespace ClientsLibrary
|
|||||||
/// 用于使用udp向服务器进行发送即时可丢失数据的对象
|
/// 用于使用udp向服务器进行发送即时可丢失数据的对象
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public static NetUdpClient Net_Udp_Client { get; set; } = new NetUdpClient(
|
public static NetUdpClient Net_Udp_Client { get; set; } = new NetUdpClient(
|
||||||
new System.Net.IPEndPoint(System.Net.IPAddress.Parse(ServerIp),
|
new IPEndPoint(IPAddress.Parse(ServerIp), CommonProtocol.Port_Udp_Server))
|
||||||
CommonLibrary.CommonProtocol.Port_Udp_Server))
|
|
||||||
{
|
{
|
||||||
KeyToken = CommonLibrary.CommonProtocol.KeyToken,
|
KeyToken = CommonProtocol.KeyToken,
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
||||||
@@ -112,7 +110,7 @@ namespace ClientsLibrary
|
|||||||
/// </summary>
|
/// </summary>
|
||||||
public static AdvancedFileClient Net_File_Client { get; set; } = new AdvancedFileClient()
|
public static AdvancedFileClient Net_File_Client { get; set; } = new AdvancedFileClient()
|
||||||
{
|
{
|
||||||
KeyToken = CommonLibrary.CommonProtocol.KeyToken,
|
KeyToken = CommonProtocol.KeyToken,
|
||||||
LogNet = LogNet,
|
LogNet = LogNet,
|
||||||
ServerIpEndPoint = new IPEndPoint(IPAddress.Parse(ServerIp), CommonLibrary.CommonProtocol.Port_Advanced_File_Server)
|
ServerIpEndPoint = new IPEndPoint(IPAddress.Parse(ServerIp), CommonLibrary.CommonProtocol.Port_Advanced_File_Server)
|
||||||
};
|
};
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ namespace CommonLibrary
|
|||||||
if (name == all_list_accounts[i].UserName)
|
if (name == all_list_accounts[i].UserName)
|
||||||
{
|
{
|
||||||
all_list_accounts[i].Password = password;
|
all_list_accounts[i].Password = password;
|
||||||
ILogNet?.WriteInfo(Resource.StringResouce.AccountModifyPassword + name);
|
ILogNet?.WriteInfo(SoftResources.StringResouce.AccountModifyPassword + name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -72,7 +72,7 @@ namespace CommonLibrary
|
|||||||
{
|
{
|
||||||
all_list_accounts[i].SmallPortraitMD5 = smallPortraitMD5;
|
all_list_accounts[i].SmallPortraitMD5 = smallPortraitMD5;
|
||||||
all_list_accounts[i].LargePortraitMD5 = largePortraitMD5;
|
all_list_accounts[i].LargePortraitMD5 = largePortraitMD5;
|
||||||
ILogNet?.WriteInfo(Resource.StringResouce.AccountUploadPortrait + name);
|
ILogNet?.WriteInfo(SoftResources.StringResouce.AccountUploadPortrait + name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -176,7 +176,7 @@ namespace CommonLibrary
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
all_list_accounts.Add(account);
|
all_list_accounts.Add(account);
|
||||||
ILogNet?.WriteInfo(Resource.StringResouce.AccountAddSuccess + account.UserName);
|
ILogNet?.WriteInfo(SoftResources.StringResouce.AccountAddSuccess + account.UserName);
|
||||||
|
|
||||||
hybirdLock.Leave();
|
hybirdLock.Leave();
|
||||||
return result;
|
return result;
|
||||||
@@ -194,7 +194,7 @@ namespace CommonLibrary
|
|||||||
if (name == all_list_accounts[i].UserName)
|
if (name == all_list_accounts[i].UserName)
|
||||||
{
|
{
|
||||||
all_list_accounts.RemoveAt(i);
|
all_list_accounts.RemoveAt(i);
|
||||||
ILogNet?.WriteInfo(Resource.StringResouce.AccountDeleteSuccess + name);
|
ILogNet?.WriteInfo(SoftResources.StringResouce.AccountDeleteSuccess + name);
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -241,7 +241,7 @@ namespace CommonLibrary
|
|||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
ILogNet?.WriteException(Resource.StringResouce.AccountLoadFailed, ex);
|
ILogNet?.WriteException(SoftResources.StringResouce.AccountLoadFailed, ex);
|
||||||
}
|
}
|
||||||
hybirdLock.Leave();
|
hybirdLock.Leave();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -228,7 +228,10 @@ namespace CommonLibrary
|
|||||||
/// 指示系统的主题色是否是深色,目前只适合于wpf
|
/// 指示系统的主题色是否是深色,目前只适合于wpf
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public bool IsThemeDark { get; set; } = false;
|
public bool IsThemeDark { get; set; } = false;
|
||||||
|
/// <summary>
|
||||||
|
/// 本地保存的密码过期天数
|
||||||
|
/// </summary>
|
||||||
|
public int PasswordOverdueDays { get; set; } = 7;
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 当前计算机的机器码,用来判定参数是否是正确的
|
/// 当前计算机的机器码,用来判定参数是否是正确的
|
||||||
@@ -251,6 +254,7 @@ namespace CommonLibrary
|
|||||||
json.Add(nameof(SystemInfo), new JValue(SystemInfo));
|
json.Add(nameof(SystemInfo), new JValue(SystemInfo));
|
||||||
json.Add(nameof(LoginTime), new JValue(LoginTime));
|
json.Add(nameof(LoginTime), new JValue(LoginTime));
|
||||||
json.Add(nameof(IsThemeDark), new JValue(IsThemeDark));
|
json.Add(nameof(IsThemeDark), new JValue(IsThemeDark));
|
||||||
|
json.Add(nameof(PasswordOverdueDays), new JValue(PasswordOverdueDays));
|
||||||
return json.ToString();
|
return json.ToString();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -258,14 +262,17 @@ namespace CommonLibrary
|
|||||||
{
|
{
|
||||||
JObject json = JObject.Parse(content);
|
JObject json = JObject.Parse(content);
|
||||||
string systemInfo = SoftBasic.GetValueFromJsonObject(json, nameof(SystemInfo), "");
|
string systemInfo = SoftBasic.GetValueFromJsonObject(json, nameof(SystemInfo), "");
|
||||||
|
// 用户名不会因此更改
|
||||||
|
LoginName = SoftBasic.GetValueFromJsonObject(json, nameof(LoginName), LoginName);
|
||||||
|
|
||||||
if (systemInfo == SystemInfo)
|
if (systemInfo == SystemInfo)
|
||||||
{
|
{
|
||||||
//确认账户名及密码是本机的记录,而不是从其他电脑端拷贝过来的
|
//确认账户名及密码是本机的记录,而不是从其他电脑端拷贝过来的
|
||||||
LoginName = SoftBasic.GetValueFromJsonObject(json, nameof(LoginName), LoginName);
|
|
||||||
IsNewVersionRunning = SoftBasic.GetValueFromJsonObject(json, nameof(IsNewVersionRunning), IsNewVersionRunning);
|
IsNewVersionRunning = SoftBasic.GetValueFromJsonObject(json, nameof(IsNewVersionRunning), IsNewVersionRunning);
|
||||||
Password = SoftBasic.GetValueFromJsonObject(json, nameof(Password), Password);
|
Password = SoftBasic.GetValueFromJsonObject(json, nameof(Password), Password);
|
||||||
LoginTime = SoftBasic.GetValueFromJsonObject(json, nameof(LoginTime), LoginTime);
|
LoginTime = SoftBasic.GetValueFromJsonObject(json, nameof(LoginTime), LoginTime);
|
||||||
IsThemeDark = SoftBasic.GetValueFromJsonObject(json, nameof(IsThemeDark), IsThemeDark);
|
IsThemeDark = SoftBasic.GetValueFromJsonObject(json, nameof(IsThemeDark), IsThemeDark);
|
||||||
|
PasswordOverdueDays = SoftBasic.GetValueFromJsonObject(json, nameof(PasswordOverdueDays), PasswordOverdueDays);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -92,7 +92,7 @@
|
|||||||
<Compile Include="OrderSupport\ClassOrder.cs" />
|
<Compile Include="OrderSupport\ClassOrder.cs" />
|
||||||
<Compile Include="PortraitSupport\PortraitSupport.cs" />
|
<Compile Include="PortraitSupport\PortraitSupport.cs" />
|
||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Resource.cs" />
|
<Compile Include="ProtocolSupport\Resource.cs" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<EmbeddedResource Include="AccountSupport\FormAccountManage.resx">
|
<EmbeddedResource Include="AccountSupport\FormAccountManage.resx">
|
||||||
|
|||||||
@@ -55,7 +55,7 @@ namespace CommonLibrary
|
|||||||
*
|
*
|
||||||
**************************************************************************/
|
**************************************************************************/
|
||||||
|
|
||||||
SoftBasic.FrameworkVersion = new SystemVersion("1.4.0");
|
SoftBasic.FrameworkVersion = new SystemVersion("1.4.1");
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,26 +5,23 @@ using System.Text;
|
|||||||
|
|
||||||
namespace CommonLibrary
|
namespace CommonLibrary
|
||||||
{
|
{
|
||||||
|
|
||||||
|
/*********************************************************************************************
|
||||||
|
*
|
||||||
|
* 说明:用于同步网络和异步网络的各种消息头的区别,初始想法使用长度为4的字符串区分,
|
||||||
|
* 目前改为int数据区分,以后需要代码重构
|
||||||
|
*
|
||||||
|
*********************************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 用于网络通信的二级协议头说明
|
/// 用于网络通信的二级协议头说明
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class CommonHeadCode
|
public class CommonHeadCode
|
||||||
{
|
{
|
||||||
|
|
||||||
/************************************************************************************************
|
|
||||||
*
|
|
||||||
* 注意:您在准备二次开发时,应该重新生成一个自己的GUID码
|
|
||||||
*
|
|
||||||
**************************************************************************************************/
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
|
||||||
/// 用于整个网络服务交互的身份令牌,可有效的防止来自网络的攻击,重新生成令牌后就无法更改,否则不支持自动升级
|
|
||||||
/// </summary>
|
|
||||||
public static Guid KeyToken { get; set; } = new Guid("1275BB9A-14B2-4A96-9673-B0AF0463D474");
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 同步通信的指令头说明,以10000开头,后面接20000,30000,
|
/// 同步通信的指令头说明,以10000开头,后面接20000,30000,
|
||||||
/// </summary>
|
/// </summary>
|
||||||
@@ -63,7 +60,6 @@ namespace CommonLibrary
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 判断指令否是日志相关指令
|
/// 判断指令否是日志相关指令
|
||||||
/// </summary>
|
/// </summary>
|
||||||
|
|||||||
@@ -8,7 +8,7 @@ namespace CommonLibrary
|
|||||||
/// <summary>
|
/// <summary>
|
||||||
/// 所有的数据资源中心
|
/// 所有的数据资源中心
|
||||||
/// </summary>
|
/// </summary>
|
||||||
public class Resource
|
public class SoftResources
|
||||||
{
|
{
|
||||||
/// <summary>
|
/// <summary>
|
||||||
/// 字符串资源中心
|
/// 字符串资源中心
|
||||||
Binary file not shown.
@@ -1392,6 +1392,143 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
|
<member name="T:HslCommunication.NetHandle">
|
||||||
|
<summary>
|
||||||
|
用于网络传递的信息头,使用上等同于int
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:HslCommunication.NetHandle.op_Implicit(System.Int32)~HslCommunication.NetHandle">
|
||||||
|
<summary>
|
||||||
|
赋值操作,可以直接赋值int数据
|
||||||
|
</summary>
|
||||||
|
<param name="value"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:HslCommunication.NetHandle.op_Implicit(HslCommunication.NetHandle)~System.Int32">
|
||||||
|
<summary>
|
||||||
|
也可以赋值给int数据
|
||||||
|
</summary>
|
||||||
|
<param name="netHandle"></param>
|
||||||
|
</member>
|
||||||
|
<member name="M:HslCommunication.NetHandle.op_Equality(HslCommunication.NetHandle,HslCommunication.NetHandle)">
|
||||||
|
<summary>
|
||||||
|
判断是否相等
|
||||||
|
</summary>
|
||||||
|
<param name="netHandle1">第一个数</param>
|
||||||
|
<param name="netHandle2">第二个数</param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:HslCommunication.NetHandle.op_Inequality(HslCommunication.NetHandle,HslCommunication.NetHandle)">
|
||||||
|
<summary>
|
||||||
|
判断是否不相等
|
||||||
|
</summary>
|
||||||
|
<param name="netHandle1"></param>
|
||||||
|
<param name="netHandle2"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:HslCommunication.NetHandle.op_Addition(HslCommunication.NetHandle,HslCommunication.NetHandle)">
|
||||||
|
<summary>
|
||||||
|
两个数值相加
|
||||||
|
</summary>
|
||||||
|
<param name="netHandle1"></param>
|
||||||
|
<param name="netHandle2"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:HslCommunication.NetHandle.op_Subtraction(HslCommunication.NetHandle,HslCommunication.NetHandle)">
|
||||||
|
<summary>
|
||||||
|
两个数值相减
|
||||||
|
</summary>
|
||||||
|
<param name="netHandle1"></param>
|
||||||
|
<param name="netHandle2"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:HslCommunication.NetHandle.op_LessThan(HslCommunication.NetHandle,HslCommunication.NetHandle)">
|
||||||
|
<summary>
|
||||||
|
判断是否小于另一个数值
|
||||||
|
</summary>
|
||||||
|
<param name="netHandle1"></param>
|
||||||
|
<param name="netHandle2"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:HslCommunication.NetHandle.op_GreaterThan(HslCommunication.NetHandle,HslCommunication.NetHandle)">
|
||||||
|
<summary>
|
||||||
|
判断是否大于另一个数值
|
||||||
|
</summary>
|
||||||
|
<param name="netHandle1"></param>
|
||||||
|
<param name="netHandle2"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:HslCommunication.NetHandle.#ctor(System.Int32)">
|
||||||
|
<summary>
|
||||||
|
初始化一个暗号对象
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:HslCommunication.NetHandle.#ctor(System.Byte,System.Byte,System.UInt16)">
|
||||||
|
<summary>
|
||||||
|
根据三个值来初始化暗号对象
|
||||||
|
</summary>
|
||||||
|
<param name="major">主暗号</param>
|
||||||
|
<param name="minor">次暗号</param>
|
||||||
|
<param name="identifier">暗号编号</param>
|
||||||
|
</member>
|
||||||
|
<member name="F:HslCommunication.NetHandle.m_CodeValue">
|
||||||
|
<summary>
|
||||||
|
完整的暗号值
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:HslCommunication.NetHandle.m_CodeMajor">
|
||||||
|
<summary>
|
||||||
|
主暗号分类0-255
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:HslCommunication.NetHandle.m_CodeMinor">
|
||||||
|
<summary>
|
||||||
|
次要的暗号分类0-255
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="F:HslCommunication.NetHandle.m_CodeIdentifier">
|
||||||
|
<summary>
|
||||||
|
暗号的编号分类0-65535
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:HslCommunication.NetHandle.CodeValue">
|
||||||
|
<summary>
|
||||||
|
完整的暗号值
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:HslCommunication.NetHandle.CodeMajor">
|
||||||
|
<summary>
|
||||||
|
主暗号分类0-255
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:HslCommunication.NetHandle.CodeMinor">
|
||||||
|
<summary>
|
||||||
|
次要的暗号分类0-255
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="P:HslCommunication.NetHandle.CodeIdentifier">
|
||||||
|
<summary>
|
||||||
|
暗号的编号分类0-65535
|
||||||
|
</summary>
|
||||||
|
</member>
|
||||||
|
<member name="M:HslCommunication.NetHandle.ToString">
|
||||||
|
<summary>
|
||||||
|
获取完整的暗号数据
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:HslCommunication.NetHandle.Equals(System.Object)">
|
||||||
|
<summary>
|
||||||
|
判断两个实例是否相同
|
||||||
|
</summary>
|
||||||
|
<param name="obj"></param>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
|
<member name="M:HslCommunication.NetHandle.GetHashCode">
|
||||||
|
<summary>
|
||||||
|
获取哈希值
|
||||||
|
</summary>
|
||||||
|
<returns></returns>
|
||||||
|
</member>
|
||||||
<member name="T:HslCommunication.HslCommunicationCode">
|
<member name="T:HslCommunication.HslCommunicationCode">
|
||||||
<summary>
|
<summary>
|
||||||
用于本程序集访问通信的暗号说明
|
用于本程序集访问通信的暗号说明
|
||||||
@@ -2414,7 +2551,7 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<param name="obj"></param>
|
<param name="obj"></param>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:HslCommunication.Enthernet.NetComplexServer.Send(HslCommunication.Enthernet.AsyncStateOne,System.Int32,System.String)">
|
<member name="M:HslCommunication.Enthernet.NetComplexServer.Send(HslCommunication.Enthernet.AsyncStateOne,HslCommunication.NetHandle,System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
服务器端用于数据发送文本的方法
|
服务器端用于数据发送文本的方法
|
||||||
</summary>
|
</summary>
|
||||||
@@ -2422,7 +2559,7 @@
|
|||||||
<param name="customer">用户自定义的数据对象,如不需要,赋值为0</param>
|
<param name="customer">用户自定义的数据对象,如不需要,赋值为0</param>
|
||||||
<param name="str">发送的文本</param>
|
<param name="str">发送的文本</param>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:HslCommunication.Enthernet.NetComplexServer.Send(HslCommunication.Enthernet.AsyncStateOne,System.Int32,System.Byte[])">
|
<member name="M:HslCommunication.Enthernet.NetComplexServer.Send(HslCommunication.Enthernet.AsyncStateOne,HslCommunication.NetHandle,System.Byte[])">
|
||||||
<summary>
|
<summary>
|
||||||
服务器端用于发送字节的方法
|
服务器端用于发送字节的方法
|
||||||
</summary>
|
</summary>
|
||||||
@@ -2430,14 +2567,14 @@
|
|||||||
<param name="customer">用户自定义的数据对象,如不需要,赋值为0</param>
|
<param name="customer">用户自定义的数据对象,如不需要,赋值为0</param>
|
||||||
<param name="bytes">实际发送的数据</param>
|
<param name="bytes">实际发送的数据</param>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:HslCommunication.Enthernet.NetComplexServer.SendAllClients(System.Int32,System.String)">
|
<member name="M:HslCommunication.Enthernet.NetComplexServer.SendAllClients(HslCommunication.NetHandle,System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
服务端用于发送所有数据到所有的客户端
|
服务端用于发送所有数据到所有的客户端
|
||||||
</summary>
|
</summary>
|
||||||
<param name="customer">用户自定义的命令头</param>
|
<param name="customer">用户自定义的命令头</param>
|
||||||
<param name="str">需要传送的实际的数据</param>
|
<param name="str">需要传送的实际的数据</param>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:HslCommunication.Enthernet.NetComplexServer.SendAllClients(System.Int32,System.Byte[])">
|
<member name="M:HslCommunication.Enthernet.NetComplexServer.SendAllClients(HslCommunication.NetHandle,System.Byte[])">
|
||||||
<summary>
|
<summary>
|
||||||
服务端用于发送所有数据到所有的客户端
|
服务端用于发送所有数据到所有的客户端
|
||||||
</summary>
|
</summary>
|
||||||
@@ -2545,14 +2682,14 @@
|
|||||||
<param name="receive"></param>
|
<param name="receive"></param>
|
||||||
<param name="ex"></param>
|
<param name="ex"></param>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:HslCommunication.Enthernet.NetComplexClient.Send(System.Int32,System.String)">
|
<member name="M:HslCommunication.Enthernet.NetComplexClient.Send(HslCommunication.NetHandle,System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
服务器端用于数据发送文本的方法
|
服务器端用于数据发送文本的方法
|
||||||
</summary>
|
</summary>
|
||||||
<param name="customer">用户自定义的命令头</param>
|
<param name="customer">用户自定义的命令头</param>
|
||||||
<param name="str">发送的文本</param>
|
<param name="str">发送的文本</param>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:HslCommunication.Enthernet.NetComplexClient.Send(System.Int32,System.Byte[])">
|
<member name="M:HslCommunication.Enthernet.NetComplexClient.Send(HslCommunication.NetHandle,System.Byte[])">
|
||||||
<summary>
|
<summary>
|
||||||
服务器端用于发送字节的方法
|
服务器端用于发送字节的方法
|
||||||
</summary>
|
</summary>
|
||||||
@@ -2585,7 +2722,7 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<param name="end_point">服务器的通信地址</param>
|
<param name="end_point">服务器的通信地址</param>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:HslCommunication.Enthernet.NetSimplifyClient.ReadFromServer(System.Int32,System.String,System.Action{System.Int64,System.Int64},System.Action{System.Int64,System.Int64})">
|
<member name="M:HslCommunication.Enthernet.NetSimplifyClient.ReadFromServer(HslCommunication.NetHandle,System.String,System.Action{System.Int64,System.Int64},System.Action{System.Int64,System.Int64})">
|
||||||
<summary>
|
<summary>
|
||||||
客户端向服务器进行请求,请求字符串数据
|
客户端向服务器进行请求,请求字符串数据
|
||||||
</summary>
|
</summary>
|
||||||
@@ -2595,7 +2732,7 @@
|
|||||||
<param name="receiveStatus">接收数据时的进度报告</param>
|
<param name="receiveStatus">接收数据时的进度报告</param>
|
||||||
<returns></returns>
|
<returns></returns>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:HslCommunication.Enthernet.NetSimplifyClient.ReadFromServer(System.Int32,System.Byte[],System.Action{System.Int64,System.Int64},System.Action{System.Int64,System.Int64})">
|
<member name="M:HslCommunication.Enthernet.NetSimplifyClient.ReadFromServer(HslCommunication.NetHandle,System.Byte[],System.Action{System.Int64,System.Int64},System.Action{System.Int64,System.Int64})">
|
||||||
<summary>
|
<summary>
|
||||||
客户端向服务器进行请求,请求字节数据
|
客户端向服务器进行请求,请求字节数据
|
||||||
</summary>
|
</summary>
|
||||||
@@ -2776,7 +2913,7 @@
|
|||||||
</summary>
|
</summary>
|
||||||
<param name="endpoint"></param>
|
<param name="endpoint"></param>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:HslCommunication.Enthernet.NetUdpClient.SendMessage(System.Int32,System.Byte[])">
|
<member name="M:HslCommunication.Enthernet.NetUdpClient.SendMessage(HslCommunication.NetHandle,System.Byte[])">
|
||||||
<summary>
|
<summary>
|
||||||
发送字节数据到服务器
|
发送字节数据到服务器
|
||||||
</summary>
|
</summary>
|
||||||
@@ -2786,7 +2923,7 @@
|
|||||||
<exception cref="T:System.Net.Sockets.SocketException"></exception>
|
<exception cref="T:System.Net.Sockets.SocketException"></exception>
|
||||||
<exception cref="T:System.ObjectDisposedException"></exception>
|
<exception cref="T:System.ObjectDisposedException"></exception>
|
||||||
</member>
|
</member>
|
||||||
<member name="M:HslCommunication.Enthernet.NetUdpClient.SendMessage(System.Int32,System.String)">
|
<member name="M:HslCommunication.Enthernet.NetUdpClient.SendMessage(HslCommunication.NetHandle,System.String)">
|
||||||
<summary>
|
<summary>
|
||||||
发送字符串数据到服务器
|
发送字符串数据到服务器
|
||||||
</summary>
|
</summary>
|
||||||
|
|||||||
@@ -46,19 +46,21 @@ namespace 软件系统客户端Wpf
|
|||||||
private void Window_Loaded(object sender, RoutedEventArgs e)
|
private void Window_Loaded(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
WindowToolTip.Opacity = 0;
|
WindowToolTip.Opacity = 0;
|
||||||
TextBlockSoftName.Text = CommonLibrary.Resource.StringResouce.SoftName;
|
|
||||||
|
TextBlockSoftName.Text = SoftResources.StringResouce.SoftName;
|
||||||
TextBlockSoftVersion.Text = UserClient.CurrentVersion.ToString();
|
TextBlockSoftVersion.Text = UserClient.CurrentVersion.ToString();
|
||||||
TextBlockSoftCopyright.Text = $"本软件著作权归{CommonLibrary.Resource.StringResouce.SoftCopyRight}所有";
|
TextBlockSoftCopyright.Text = $"本软件著作权归{CommonLibrary.SoftResources.StringResouce.SoftCopyRight}所有";
|
||||||
|
|
||||||
|
|
||||||
// 上次登录为7天以前则清除账户密码
|
// 上次登录为7天以前则清除账户密码
|
||||||
if ((DateTime.Now - UserClient.JsonSettings.LoginTime).TotalDays < 7)
|
if ((DateTime.Now - UserClient.JsonSettings.LoginTime).TotalDays < UserClient.JsonSettings.PasswordOverdueDays)
|
||||||
{
|
{
|
||||||
//加载数据
|
//加载数据
|
||||||
NameTextBox.Text = UserClient.JsonSettings.LoginName ?? "";
|
NameTextBox.Text = UserClient.JsonSettings.LoginName ?? "";
|
||||||
PasswordBox.Password = UserClient.JsonSettings.Password ?? "";
|
PasswordBox.Password = UserClient.JsonSettings.Password ?? "";
|
||||||
Remember.IsChecked = UserClient.JsonSettings.Password != "";
|
Remember.IsChecked = UserClient.JsonSettings.Password != "";
|
||||||
}
|
}
|
||||||
|
|
||||||
//初始化输入焦点
|
//初始化输入焦点
|
||||||
if (UserClient.JsonSettings.Password != "") LoginButton.Focus();
|
if (UserClient.JsonSettings.Password != "") LoginButton.Focus();
|
||||||
else if (UserClient.JsonSettings.LoginName != "") PasswordBox.Focus();
|
else if (UserClient.JsonSettings.LoginName != "") PasswordBox.Focus();
|
||||||
|
|||||||
@@ -157,7 +157,7 @@ namespace 软件系统客户端Wpf
|
|||||||
Account_address.Text = UserClient.UserAccount.LastLoginIpAddress;
|
Account_address.Text = UserClient.UserAccount.LastLoginIpAddress;
|
||||||
|
|
||||||
//状态栏设置
|
//状态栏设置
|
||||||
TextBlock_CopyRight.Text = $"本软件著作权归{Resource.StringResouce.SoftCopyRight}所有";
|
TextBlock_CopyRight.Text = $"本软件著作权归{SoftResources.StringResouce.SoftCopyRight}所有";
|
||||||
|
|
||||||
//绑定事件,仅执行一次,不能放到show方法里
|
//绑定事件,仅执行一次,不能放到show方法里
|
||||||
net_socket_client.MessageAlerts += Net_socket_client_MessageAlerts;
|
net_socket_client.MessageAlerts += Net_socket_client_MessageAlerts;
|
||||||
@@ -322,8 +322,8 @@ namespace 软件系统客户端Wpf
|
|||||||
|
|
||||||
private void MenuItem关于本软件_Click(object sender, RoutedEventArgs e)
|
private void MenuItem关于本软件_Click(object sender, RoutedEventArgs e)
|
||||||
{
|
{
|
||||||
using (FormAbout fa = new FormAbout(Resource.StringResouce.SoftName,
|
using (FormAbout fa = new FormAbout(SoftResources.StringResouce.SoftName,
|
||||||
UserClient.CurrentVersion, 2017, Resource.StringResouce.SoftCopyRight))
|
UserClient.CurrentVersion, 2017, SoftResources.StringResouce.SoftCopyRight))
|
||||||
{
|
{
|
||||||
fa.ShowDialog();
|
fa.ShowDialog();
|
||||||
}
|
}
|
||||||
@@ -416,7 +416,7 @@ namespace 软件系统客户端Wpf
|
|||||||
/// <param name="state">网络连接对象</param>
|
/// <param name="state">网络连接对象</param>
|
||||||
/// <param name="customer">用户自定义的指令头,用来区分数据用途</param>
|
/// <param name="customer">用户自定义的指令头,用来区分数据用途</param>
|
||||||
/// <param name="data">数据</param>
|
/// <param name="data">数据</param>
|
||||||
private void Net_socket_client_AcceptString(AsyncStateOne state, int customer, string data)
|
private void Net_socket_client_AcceptString(AsyncStateOne state, NetHandle customer, string data)
|
||||||
{
|
{
|
||||||
if (customer == CommonHeadCode.MultiNetHeadCode.弹窗新消息)
|
if (customer == CommonHeadCode.MultiNetHeadCode.弹窗新消息)
|
||||||
{
|
{
|
||||||
@@ -482,7 +482,7 @@ namespace 软件系统客户端Wpf
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Net_socket_client_AcceptByte(AsyncStateOne object1, int customer, byte[] object2)
|
private void Net_socket_client_AcceptByte(AsyncStateOne object1, NetHandle customer, byte[] object2)
|
||||||
{
|
{
|
||||||
//接收到服务器发来的字节数据
|
//接收到服务器发来的字节数据
|
||||||
if (IsWindowShow) Dispatcher.Invoke(new Action(() =>
|
if (IsWindowShow) Dispatcher.Invoke(new Action(() =>
|
||||||
@@ -522,15 +522,6 @@ namespace 软件系统客户端Wpf
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -42,8 +42,8 @@ namespace 软件系统客户端模版
|
|||||||
UserClient.JsonSettings.LoadByFile();//根据实际实际情况选中解密算法,默认采用DES加密解密算法
|
UserClient.JsonSettings.LoadByFile();//根据实际实际情况选中解密算法,默认采用DES加密解密算法
|
||||||
|
|
||||||
label_version.Text = "版本:" + UserClient.CurrentVersion.ToString();
|
label_version.Text = "版本:" + UserClient.CurrentVersion.ToString();
|
||||||
label2.Text = CommonLibrary.Resource.StringResouce.SoftName;
|
label2.Text = CommonLibrary.SoftResources.StringResouce.SoftName;
|
||||||
label_copyright.Text = $"本软件著作权归{CommonLibrary.Resource.StringResouce.SoftCopyRight}所有";
|
label_copyright.Text = $"本软件著作权归{CommonLibrary.SoftResources.StringResouce.SoftCopyRight}所有";
|
||||||
}
|
}
|
||||||
|
|
||||||
private void FormLogin_Shown(object sender, EventArgs e)
|
private void FormLogin_Shown(object sender, EventArgs e)
|
||||||
@@ -51,7 +51,7 @@ namespace 软件系统客户端模版
|
|||||||
IsWindowShow = true;
|
IsWindowShow = true;
|
||||||
|
|
||||||
//如果七天未登录,账户密码清除
|
//如果七天未登录,账户密码清除
|
||||||
if ((DateTime.Now - UserClient.JsonSettings.LoginTime).TotalDays < 7)
|
if ((DateTime.Now - UserClient.JsonSettings.LoginTime).TotalDays < UserClient.JsonSettings.PasswordOverdueDays)
|
||||||
{
|
{
|
||||||
//加载数据
|
//加载数据
|
||||||
textBox_userName.Text = UserClient.JsonSettings.LoginName ?? "";
|
textBox_userName.Text = UserClient.JsonSettings.LoginName ?? "";
|
||||||
@@ -94,7 +94,6 @@ namespace 软件系统客户端模版
|
|||||||
|
|
||||||
private void userButton_login_Click(object sender, EventArgs e)
|
private void userButton_login_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
|
|
||||||
label_status.Visible = true;
|
label_status.Visible = true;
|
||||||
//验证输入
|
//验证输入
|
||||||
if (string.IsNullOrEmpty(textBox_userName.Text))
|
if (string.IsNullOrEmpty(textBox_userName.Text))
|
||||||
|
|||||||
@@ -72,7 +72,7 @@ namespace 软件系统客户端模版
|
|||||||
//状态栏设置
|
//状态栏设置
|
||||||
toolStripStatusLabel_time.Alignment = ToolStripItemAlignment.Right;
|
toolStripStatusLabel_time.Alignment = ToolStripItemAlignment.Right;
|
||||||
statusStrip1.LayoutStyle = ToolStripLayoutStyle.StackWithOverflow;
|
statusStrip1.LayoutStyle = ToolStripLayoutStyle.StackWithOverflow;
|
||||||
toolStripStatusLabel1.Text = $"本软件著作权归{Resource.StringResouce.SoftCopyRight}所有";
|
toolStripStatusLabel1.Text = $"本软件著作权归{SoftResources.StringResouce.SoftCopyRight}所有";
|
||||||
|
|
||||||
//绑定事件,仅执行一次,不能放到show方法里
|
//绑定事件,仅执行一次,不能放到show方法里
|
||||||
net_socket_client.MessageAlerts += Net_socket_client_MessageAlerts;
|
net_socket_client.MessageAlerts += Net_socket_client_MessageAlerts;
|
||||||
@@ -163,8 +163,8 @@ namespace 软件系统客户端模版
|
|||||||
|
|
||||||
private void 关于本软件ToolStripMenuItem_Click(object sender, EventArgs e)
|
private void 关于本软件ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
using (FormAbout fa = new FormAbout(Resource.StringResouce.SoftName,
|
using (FormAbout fa = new FormAbout(SoftResources.StringResouce.SoftName,
|
||||||
UserClient.CurrentVersion, 2017, Resource.StringResouce.SoftCopyRight))
|
UserClient.CurrentVersion, 2017, SoftResources.StringResouce.SoftCopyRight))
|
||||||
{
|
{
|
||||||
fa.ShowDialog();
|
fa.ShowDialog();
|
||||||
}
|
}
|
||||||
@@ -356,7 +356,7 @@ namespace 软件系统客户端模版
|
|||||||
/// <param name="state">网络连接对象</param>
|
/// <param name="state">网络连接对象</param>
|
||||||
/// <param name="customer">用户自定义的指令头,用来区分数据用途</param>
|
/// <param name="customer">用户自定义的指令头,用来区分数据用途</param>
|
||||||
/// <param name="data">数据</param>
|
/// <param name="data">数据</param>
|
||||||
private void Net_socket_client_AcceptString(AsyncStateOne state, int customer, string data)
|
private void Net_socket_client_AcceptString(AsyncStateOne state, NetHandle customer, string data)
|
||||||
{
|
{
|
||||||
if (customer == CommonHeadCode.MultiNetHeadCode.弹窗新消息)
|
if (customer == CommonHeadCode.MultiNetHeadCode.弹窗新消息)
|
||||||
{
|
{
|
||||||
@@ -422,7 +422,7 @@ namespace 软件系统客户端模版
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Net_socket_client_AcceptByte(AsyncStateOne object1, int customer, byte[] object2)
|
private void Net_socket_client_AcceptByte(AsyncStateOne object1, NetHandle customer, byte[] object2)
|
||||||
{
|
{
|
||||||
//接收到服务器发来的字节数据
|
//接收到服务器发来的字节数据
|
||||||
if (IsHandleCreated) Invoke(new Action(() =>
|
if (IsHandleCreated) Invoke(new Action(() =>
|
||||||
|
|||||||
@@ -13,6 +13,7 @@ using Newtonsoft.Json.Linq;
|
|||||||
using HslCommunication.BasicFramework;
|
using HslCommunication.BasicFramework;
|
||||||
using System.Diagnostics;
|
using System.Diagnostics;
|
||||||
using HslCommunication.LogNet;
|
using HslCommunication.LogNet;
|
||||||
|
using HslCommunication;
|
||||||
|
|
||||||
|
|
||||||
/******************************************************************************************
|
/******************************************************************************************
|
||||||
@@ -109,8 +110,8 @@ namespace 软件系统服务端模版
|
|||||||
//加载参数
|
//加载参数
|
||||||
UserServer.ServerSettings.LoadByFile();
|
UserServer.ServerSettings.LoadByFile();
|
||||||
toolStripStatusLabel_version.Text = UserServer.ServerSettings.SystemVersion.ToString();
|
toolStripStatusLabel_version.Text = UserServer.ServerSettings.SystemVersion.ToString();
|
||||||
toolStripStatusLabel1.Text = $"本软件著作权归{Resource.StringResouce.SoftCopyRight}所有";
|
toolStripStatusLabel1.Text = $"本软件著作权归{SoftResources.StringResouce.SoftCopyRight}所有";
|
||||||
label5.Text = Resource.StringResouce.SoftName;
|
label5.Text = SoftResources.StringResouce.SoftName;
|
||||||
//加载账户信息
|
//加载账户信息
|
||||||
UserServer.ServerAccounts.FileSavePath = Application.StartupPath + @"\accounts.txt";
|
UserServer.ServerAccounts.FileSavePath = Application.StartupPath + @"\accounts.txt";
|
||||||
UserServer.ServerAccounts.LoadByFile();
|
UserServer.ServerAccounts.LoadByFile();
|
||||||
@@ -264,8 +265,8 @@ namespace 软件系统服务端模版
|
|||||||
private void 关于软件ToolStripMenuItem_Click(object sender, EventArgs e)
|
private void 关于软件ToolStripMenuItem_Click(object sender, EventArgs e)
|
||||||
{
|
{
|
||||||
using (FormAbout fm = new FormAbout(
|
using (FormAbout fm = new FormAbout(
|
||||||
Resource.StringResouce.SoftName, UserServer.ServerSettings.SystemVersion,
|
SoftResources.StringResouce.SoftName, UserServer.ServerSettings.SystemVersion,
|
||||||
2017, Resource.StringResouce.SoftCopyRight))
|
2017, SoftResources.StringResouce.SoftCopyRight))
|
||||||
{
|
{
|
||||||
fm.ShowDialog();
|
fm.ShowDialog();
|
||||||
}
|
}
|
||||||
@@ -427,7 +428,7 @@ namespace 软件系统服务端模版
|
|||||||
/// <param name="state">网络状态</param>
|
/// <param name="state">网络状态</param>
|
||||||
/// <param name="customer">字节数据,根据实际情况选择是否使用</param>
|
/// <param name="customer">字节数据,根据实际情况选择是否使用</param>
|
||||||
/// <param name="data">来自客户端的字节数据</param>
|
/// <param name="data">来自客户端的字节数据</param>
|
||||||
private void Net_simplify_server_ReceivedBytesEvent(AsyncStateOne state, int customer, byte[] data)
|
private void Net_simplify_server_ReceivedBytesEvent(AsyncStateOne state, NetHandle customer, byte[] data)
|
||||||
{
|
{
|
||||||
if(customer==CommonHeadCode.SimplifyHeadCode.性能计数)
|
if(customer==CommonHeadCode.SimplifyHeadCode.性能计数)
|
||||||
{
|
{
|
||||||
@@ -456,7 +457,7 @@ namespace 软件系统服务端模版
|
|||||||
/// <param name="state">客户端的地址</param>
|
/// <param name="state">客户端的地址</param>
|
||||||
/// <param name="customer">用于自定义的指令头,可不用,转而使用data来区分</param>
|
/// <param name="customer">用于自定义的指令头,可不用,转而使用data来区分</param>
|
||||||
/// <param name="data">接收到的服务器的数据</param>
|
/// <param name="data">接收到的服务器的数据</param>
|
||||||
private void Net_simplify_server_ReceiveStringEvent(AsyncStateOne state, int customer, string data)
|
private void Net_simplify_server_ReceiveStringEvent(AsyncStateOne state, NetHandle customer, string data)
|
||||||
{
|
{
|
||||||
//必须返回结果,调用SendMessage(object1,[实际数据]);
|
//必须返回结果,调用SendMessage(object1,[实际数据]);
|
||||||
if (CommonHeadCode.SimplifyHeadCode.IsCustomerGroupSystem(customer))
|
if (CommonHeadCode.SimplifyHeadCode.IsCustomerGroupSystem(customer))
|
||||||
@@ -815,18 +816,18 @@ namespace 软件系统服务端模版
|
|||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
net_socket_server.KeyToken = CommonLibrary.CommonProtocol.KeyToken;//设置身份令牌
|
net_socket_server.KeyToken = CommonProtocol.KeyToken;//设置身份令牌
|
||||||
net_socket_server.LogNet =new LogNetSingle(LogSavePath + @"\net_log.txt");
|
net_socket_server.LogNet =new LogNetSingle(LogSavePath + @"\net_log.txt");
|
||||||
net_socket_server.LogNet.SetMessageDegree(HslMessageDegree.DEBUG);//默认debug及以上级别日志均进行存储,根据需要自行选择
|
net_socket_server.LogNet.SetMessageDegree(HslMessageDegree.DEBUG);//默认debug及以上级别日志均进行存储,根据需要自行选择
|
||||||
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 += new HslCommunication.NetBase.IEDelegate<AsyncStateOne>(Net_socket_server_ClientOnline);//客户端上线触发
|
net_socket_server.ClientOnline += new NetBase.IEDelegate<AsyncStateOne>(Net_socket_server_ClientOnline);//客户端上线触发
|
||||||
net_socket_server.ClientOffline += new HslCommunication.NetBase.IEDelegate<AsyncStateOne, string>(Net_socket_server_ClientOffline);//客户端下线触发,包括异常掉线
|
net_socket_server.ClientOffline += new NetBase.IEDelegate<AsyncStateOne, string>(Net_socket_server_ClientOffline);//客户端下线触发,包括异常掉线
|
||||||
net_socket_server.AllClientsStatusChange += new HslCommunication.NetBase.IEDelegate<string>(Net_socket_server_AllClientsStatusChange);//客户端上下线变化时触发
|
net_socket_server.AllClientsStatusChange += new NetBase.IEDelegate<string>(Net_socket_server_AllClientsStatusChange);//客户端上下线变化时触发
|
||||||
net_socket_server.MessageAlerts += new HslCommunication.NetBase.IEDelegate<string>(Net_socket_server_MessageAlerts);//服务器产生提示消息触发
|
net_socket_server.MessageAlerts += new NetBase.IEDelegate<string>(Net_socket_server_MessageAlerts);//服务器产生提示消息触发
|
||||||
net_socket_server.AcceptByte += new HslCommunication.NetBase.IEDelegate<AsyncStateOne, int, byte[]>(Net_socket_server_AcceptByte);//服务器接收到字节数据触发
|
net_socket_server.AcceptByte += new NetBase.IEDelegate<AsyncStateOne, NetHandle, byte[]>(Net_socket_server_AcceptByte);//服务器接收到字节数据触发
|
||||||
net_socket_server.AcceptString += new HslCommunication.NetBase.IEDelegate<AsyncStateOne, int, string>(Net_socket_server_AcceptString);//服务器接收到字符串数据触发
|
net_socket_server.AcceptString += new NetBase.IEDelegate<AsyncStateOne, NetHandle, string>(Net_socket_server_AcceptString);//服务器接收到字符串数据触发
|
||||||
net_socket_server.ServerStart(CommonLibrary.CommonProtocol.Port_Main_Net);
|
net_socket_server.ServerStart(CommonProtocol.Port_Main_Net);
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
{
|
{
|
||||||
@@ -846,7 +847,7 @@ namespace 软件系统服务端模版
|
|||||||
******************************************************************************************************************/
|
******************************************************************************************************************/
|
||||||
|
|
||||||
|
|
||||||
private void Net_socket_server_AcceptString(AsyncStateOne object1, int customer, string data)
|
private void Net_socket_server_AcceptString(AsyncStateOne object1, NetHandle customer, string data)
|
||||||
{
|
{
|
||||||
//如果此处充斥大量if语句,影响观感,则考虑进行指令头分类操作,客户端异步发送的字符串都会到此处处理
|
//如果此处充斥大量if语句,影响观感,则考虑进行指令头分类操作,客户端异步发送的字符串都会到此处处理
|
||||||
if (CommonHeadCode.MultiNetHeadCode.IsCustomerGroupSystem(customer))
|
if (CommonHeadCode.MultiNetHeadCode.IsCustomerGroupSystem(customer))
|
||||||
@@ -863,7 +864,7 @@ namespace 软件系统服务端模版
|
|||||||
/// <param name="state">网络状态</param>
|
/// <param name="state">网络状态</param>
|
||||||
/// <param name="customer">用户自定义的指令头</param>
|
/// <param name="customer">用户自定义的指令头</param>
|
||||||
/// <param name="data">字符串数据</param>
|
/// <param name="data">字符串数据</param>
|
||||||
private void DataProcessingWithStartH(AsyncStateOne state, int customer, string data)
|
private void DataProcessingWithStartH(AsyncStateOne state, NetHandle customer, string data)
|
||||||
{
|
{
|
||||||
if (customer == CommonHeadCode.MultiNetHeadCode.留言版消息)
|
if (customer == CommonHeadCode.MultiNetHeadCode.留言版消息)
|
||||||
{
|
{
|
||||||
@@ -872,7 +873,7 @@ namespace 软件系统服务端模版
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void Net_socket_server_AcceptByte(AsyncStateOne state, int customer, byte[] data)
|
private void Net_socket_server_AcceptByte(AsyncStateOne state, NetHandle customer, byte[] data)
|
||||||
{
|
{
|
||||||
//如果此处充斥大量if语句,影响观感,则考虑进行指令头分类操作,客户端异步发送的字节数组都会到此处处理
|
//如果此处充斥大量if语句,影响观感,则考虑进行指令头分类操作,客户端异步发送的字节数组都会到此处处理
|
||||||
}
|
}
|
||||||
@@ -1156,7 +1157,7 @@ namespace 软件系统服务端模版
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Net_udp_server_AcceptString(AsyncStateOne state, int customer, string data)
|
private void Net_udp_server_AcceptString(AsyncStateOne state, NetHandle customer, string data)
|
||||||
{
|
{
|
||||||
//此处为测试
|
//此处为测试
|
||||||
Invoke(new Action(() =>
|
Invoke(new Action(() =>
|
||||||
@@ -1165,7 +1166,7 @@ namespace 软件系统服务端模版
|
|||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|
||||||
private void Net_udp_server_AcceptByte(AsyncStateOne state, int customer, byte[] data)
|
private void Net_udp_server_AcceptByte(AsyncStateOne state, NetHandle customer, byte[] data)
|
||||||
{
|
{
|
||||||
//具体用法参考上面字符串方法
|
//具体用法参考上面字符串方法
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user