Skip to content

Commit 60c68d9

Browse files
committed
update
1 parent f169653 commit 60c68d9

File tree

1 file changed

+63
-0
lines changed

1 file changed

+63
-0
lines changed

软件系统服务端模版/form1.cs

Lines changed: 63 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -132,6 +132,7 @@ private void 启动服务器ToolStripMenuItem_Click(object sender, EventArgs e)
132132
Net_SoftUpdate_Server_Initialization();//软件更新引擎初始化
133133
Net_File_Update_Initialization();//软件异地更新引擎初始化
134134
Simple_File_Initiaization();//共享文件引擎初始化
135+
Net_Udp_Server_Initialization();//UDP引擎服务初始化
135136
启动服务器ToolStripMenuItem.Text = "已启动";
136137
启动服务器ToolStripMenuItem.BackColor = Color.LimeGreen;
137138
IsSystemStart = true;
@@ -508,6 +509,17 @@ private void DataProcessingWithStartB(AsyncStateBase object1, string object2)
508509
net_simplify_server.SendMessage(object1, "成功");
509510
RuntimeLogHelper.SaveWarnning("建议反馈日志清空");
510511
}
512+
else if (headCode == CommonHeadCode.SimplifyHeadCode.UDP日志查看)
513+
{
514+
net_simplify_server.SendMessage(object1, net_udp_server.LogHelper.GetLogText());
515+
RuntimeLogHelper.SaveInformation("UDP日志查看");
516+
}
517+
else if (headCode == CommonHeadCode.SimplifyHeadCode.UDP日志清空)
518+
{
519+
net_udp_server.LogHelper.ClearLogText();
520+
net_simplify_server.SendMessage(object1, "成功");
521+
RuntimeLogHelper.SaveWarnning("UDP日志清空");
522+
}
511523
else
512524
{
513525
net_simplify_server.SendMessage(object1, object2);
@@ -771,6 +783,57 @@ private void Net_simple_file_server_FileChange()
771783

772784
#endregion
773785

786+
#region Udp网络通信块
787+
788+
/*********************************************************************************************************
789+
*
790+
* 说明 一个用于网络间通信的UDP服务引擎,客户端调用UserClient.Net_Udp_Client.SendMessage(data);发送
791+
* 详细请参考客户端FormMainWindow中的udp发送说明
792+
* 特点 该Udp引擎非常健壮,接收失败了会抛弃本次接收,自动进入下一轮接收。
793+
* 安全 本引擎含有数据长度校验机制,确保服务器接收到的数据是正确的,没有丢失的
794+
* 注意 如果服务器配置了ReceiveCacheLength = 1024,那么客户端发送的字符串数据长度不能超过1000,否则服务器会自动丢弃,可在日志中查看
795+
* 警告 如果想要你自己的软件支持向本引擎访问,必须使用该网络组件实现,参考客户端定义,否则发送失败
796+
*
797+
**********************************************************************************************************/
798+
799+
800+
/// <summary>
801+
/// 服务器的UDP核心引擎
802+
/// </summary>
803+
private UdpNetServer net_udp_server { get; set; }
804+
805+
private void Net_Udp_Server_Initialization()
806+
{
807+
try
808+
{
809+
net_udp_server = new UdpNetServer();
810+
net_udp_server.LogHelper.LogSaveFileName = Application.StartupPath + @"\udp_log.txt";//日志路径
811+
net_udp_server.ReceiveCacheLength = 1024;//单次接收数据的缓冲长度
812+
net_udp_server.AcceptByte += Net_udp_server_AcceptByte;//接收到字节数据的时候触发事件
813+
net_udp_server.AcceptString += Net_udp_server_AcceptString;//接收到字符串数据的时候触发事件
814+
net_udp_server.ServerStart(CommonLibrary.CommonLibrary.Port_Udp_Server);
815+
}
816+
catch(Exception ex)
817+
{
818+
SoftBasic.ShowExceptionMessage(ex);
819+
}
820+
}
821+
822+
private void Net_udp_server_AcceptString(AsyncStateOne object1, string object2)
823+
{
824+
//此处为测试
825+
Invoke(new Action(() =>
826+
{
827+
textBox1.AppendText($"{DateTime.Now.ToString("MM-dd HH:mm:ss ")}来自IP:{object1._IpEnd_Point.Address.ToString()} 内容:{object2}{Environment.NewLine}");
828+
}));
829+
}
830+
831+
private void Net_udp_server_AcceptByte(AsyncStateOne object1, byte[] object2)
832+
{
833+
//具体用法参考上面字符串方法
834+
}
835+
836+
#endregion
774837

775838
#region 访问PLC块示例代码
776839

0 commit comments

Comments
 (0)