重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

ServerSuperIO单例通讯模式开发的方法是什么

这篇文章主要介绍“ServerSuperIO单例通讯模式开发的方法是什么”,在日常操作中,相信很多人在ServerSuperIO单例通讯模式开发的方法是什么问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”ServerSuperIO单例通讯模式开发的方法是什么”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!

为敦煌等地区用户提供了全套网页设计制作服务,及敦煌网站建设行业解决方案。主营业务为网站设计制作、网站设计、敦煌网站设计,以传统方式定制建设网站,并提供域名空间备案等一条龙服务,秉承以专业、用心的态度为用户提供真诚的服务。我们深信只要达到每一位用户的要求,就会得到认可,从而选择与我们长期合作。这样,我们也可以走得更远!

8.单例通讯模式开发及注意事项

8.1    概述

    单例通讯模式只适用于网络通讯,并且只能增加一个“设备驱动”,这里“设备驱动”是逻辑概念,代表了所有设备或传感器,也就是说所有接到的数据全部分发给这个“设备驱动”。

8.2    通讯机制说明

    只有网络通讯时可以使用这种控制模式。在一个服务实例内只能有一个设备驱动,相当于一个设备驱动对应着N多个硬件设备终端。更适合通讯的数据协议有固定的标准,以命令关键字处理不同的数据。适用于高并发的硬件终端设备主动上传数据,服务器端根据数据信息进行处理和返回相应的数据。

   通讯结构如下图:

 ServerSuperIO单例通讯模式开发的方法是什么

8.3    设备驱动开发注意事项

     单例模式的设备驱动开发更简单,如果业务不复杂,那么只涉及到初始化参数、实时数据、协议,以及数据的处理逻辑,更高级的应用会涉及到协议数据过滤(IReceiveFilter接口)、数据转发(IService接口)、数据视图展示(IGraphicsShow接口)等,将在后续的文章中逐一进行介绍。

8.4    宿主程序服务实例配置注意事项

  sta

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
static         void         Main(         string         [] args)
{          
                     //55 AA 00 61 43 7A 00 00 43 B4 15 0D
                     DeviceSingletonDriver dev1 =         new         DeviceSingletonDriver();
                     dev1.DeviceParameter.DeviceName =         "网络设备"         ;
                     dev1.DeviceParameter.DeviceAddr = 0;
                     dev1.DeviceParameter.DeviceID =         "0"         ;
                     dev1.DeviceDynamic.DeviceID =         "0"         ;
                     dev1.DeviceParameter.DeviceCode =         "0"         ;
                     dev1.DeviceParameter.NET.RemoteIP =         "127.0.0.1"         ;
                     dev1.DeviceParameter.NET.RemotePort = 9600;
                     dev1.CommunicateType = CommunicateType.NET;
                     dev1.Initialize(         "0"         );
 
                     IServer server =         new         ServerManager().CreateServer(         new         ServerConfig()
                     {          
                         ServerName =         "单例服务"         ,
                         NetReceiveBufferSize = 1024,
                         ControlMode = ControlMode.Singleton,
                         MaxConnects = 4000
                     });
 
                     server.AddDeviceCompleted += server_AddDeviceCompleted;
                     server.DeleteDeviceCompleted += server_DeleteDeviceCompleted;
                     server.SocketConnected+=server_SocketConnected;
                     server.SocketClosed+=server_SocketClosed;
                     server.Start();
 
                     server.AddDevice(dev1);
 
                     while         (         "exit"         == Console.ReadLine())
                     {          
                         server.Stop();
                     }
}

     ControlMode = ControlMode.Singleton设置成单位模式就可以了。

8.5    单例模式运行效果

     在本机跑过10000万个并发连接,用的jmeter,jmeter占用了1.4G左右的内存、90%多的CPU,我也不知道为什么这么耗资源,笔记本勉强还能工作。

    现在模拟的是15个客户端,100毫秒发送一次数据,效果如下:

  1. 图片

ServerSuperIO单例通讯模式开发的方法是什么

到此,关于“ServerSuperIO单例通讯模式开发的方法是什么”的学习就结束了,希望能够解决大家的疑惑。理论与实践的搭配能更好的帮助大家学习,快去试试吧!若想继续学习更多相关知识,请继续关注创新互联网站,小编会继续努力为大家带来更多实用的文章!


分享题目:ServerSuperIO单例通讯模式开发的方法是什么
标题来源:http://cqcxhl.cn/article/ijeops.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP