基于组播(multicast)的多机通讯(中兴捧月复赛)含源码

本文介绍了在通信领域中,如何利用基于组播的多点传送技术设计一个命令报文监视器,用于监视电信设备的运行情况。该监视器通过UDP广播搜索设备,使用TCP接收报文,并通过IP组播发送与接收报文,以适应多个监视器同时监控同一设备的需求。同时,监视器具备关键字过滤、报文存储和查看功能,以及友好的用户界面和错误处理机制。
摘要由CSDN通过智能技术生成
任务:一种电信设备命令报文监视器界面的设计与实现2010-06-27

        在通信领域,用户在网管界面操作,通过TCP/IP协议给电信设备发送报文,从而配置、维护电信设备。电信设备一般都不具备可视化终端,当电信设备从网管接收到了命令报文后,用户不方便了解电信设备接收到了哪些命令报文、以及处理报文过程是否正常。为了监视电信设备的运行情况,可以在电信设备上运行一个 socket服务器,在PC机上运行一个socket客户端,称为命令报文监视器,所有通过网管发给电信设备的命令报文都会通过socket服务器发送给报文监视器,请实现一个这样的命令报文监视器。

初赛要求:
1、监视器程序是一个可视化的GUI程序,刚运行时提供输入框让用户输入需要监视的电信设备的IP地址和端口号,然后与电信设备服务器建立socket连接。比如用户输入的IP地址为:192.192.192.1,端口号为8000,用户点击“连接”按钮即可与电信设备服务器建立连接。

2、监视器程序仅仅从socket连接中读取电信设备服务器发来的数据,这些数据是一串连续的ASCII码流。监视程序每次从socket中接收到数据后在数据前面加上时间信息,然后在GUI界面中显示。比如从服务器接收到的报文为“Ncp Send Message To Mcu:  nMcuAdrs=0x10301 CmdCode = 0x11ab,lParamLen = 0x12.”,那么在GUI界面中的显示则如下:
[10/05/19 03:30:17] Ncp Send Message To Mcu:  nMcuAdrs=0x10301 CmdCode = 0x11ab,lParamLen = 0x12.
其中[]里面的是显示接收到的PC机本地时间,其余ASCII字符为报文的内容。
监视器程序只管从socket中接收报文,无须通过socket发送报文。

3、当报文内容很多时为了方便用户选择查看有意义的报文,可以对报文进行过滤。支持用户输入需要过滤的字符的关键字。比如输入要过滤的关键字为 “nMcuAdrs=0x10301”,那么对于nMcuAdrs=0x10301的报文则不显示,仅显示满足关键字过滤规则的报文。当需要有多个要过滤的关键字时,需要支持一下的规则: 
(1)与  key1 and key2, 表示既要满足关键字key1也要满足关键字key2
(2)或 key1 or key2, 表示只要满足key1或者kye2任一即可
(3)支持与和或的组合,与的优先级高于或。比如 key1 and key2 or key3,表示只要满足key1、key2,或者key3即可
(4)括号的优先级高于and。比如 key1 and (key2 or key3),表示满足key1并且满足key2、key3中任一即可。
每一个关键字都用双引号括起来,比如输入过滤的字符为“nMcuAdrs=0x10301” and “CmdCode = 0x11ab” ,表示既要满足nMcuAdrs=0x10301也要满足CmdCode = 0x11ab
4、支持监视器收到的所有报文保存到文件中,需要支持用户设置文件所能保存的最大报文数目。比如用户设置最大可以保存100条报文,当超过100报文时新接收到的报文可以覆盖时间最长的报文,例如附件 中的文件。

复赛要求
1、由于电信设备较多,需要在1个监视器程序中同时监视多个不同的电信设备。比如监视程序的窗体1显示1个电信设备的命令报文,窗体2显示另外1个电信设备的命令报文。需要注意的是窗体1和窗体2属于同一个监视器程序而不是两个不同的监视器程序。
2、由于电信设备的资源有限,仅允许1个监视器程序连接上电信设备。而测试人员有多人需要同时运行监视器程序来查看同一个电信设备的情况,多个监视器程序需要在同一台PC机上监视同一个电信设备。由于只有1个监视器程序可以连接上电信设备,其余的监视器程序需要从已经连接上的监视程序获得报文。当已经连接上的监视器程序退出时,其余的监视器程序要能争先连接电信设备,无须用户干预即能继续监视电信设备的报文。
3、为了提高监视器程序的友好性,用户可以通过按键选择显示满足过滤条件或者显示不满足过滤条件的报文。当选择显示满足过滤条件报文时,匹配的关键字需要以红色字体来显示。比如关键字为CmdCode,接收到的报文内容中包含字符串CmdCode则红色显示,其余字符以默认颜色显示。
4、当用户输入的关键字不正确时需要提示,比如用户输入了 key1 an key2,需要提示用户 an 不是正确的关键字,是否要补充上d。当输入(key1 and key时,需要提示用户是否要补充上)等。

 

下载地址

                                                    

 

我主要工作是网络部分

图2.6 监视器端功能模块示意图

LAN(局域网)环境中,一台报文监视器(CMM)启动起来后,首先进行局域网广播,然后将局域网内设备IP列表显示在主窗口设备列表内。用户选择希望连接的电信设备IP进行连接。在接收报文的过程中,将报文在子窗口显示,并显示当前网络环境下的连接情况,并支持关键字过滤与报文的存储与查看。

系统总共分为三层,如2. 6:界面层、数据处理层与数据访问层。

l  界面层只包括界面模块,界面模块内涉及主界面与子界面的设计。主界面需要有平台示意图,以显示当前网络环境下的连接情况。设备信息表显示当前环境下的电信设备基本信息。子界面包括报文的操作,如存储、查看等,过滤设置可以支持匹配不显示、区分大小写与全字匹配等各项需求,以及报文显示。

l  数据处理层分为三个模块,分别是存储模块、过滤模块、网络模块。

储存模块主要与QSQLITE做交互,以存储报文。

过滤模块响应用户界面的各种过滤要求。

网络模块主要负责操作套接字,从网络获取及发送报文

l  数据访问层

数据连接,与QSQLITE连接,并存储、读取报文。

套接字与网络连接,接收、发送报文。

 

 网络收发设计

广播搜索

为了能与报文电信设备通信,需要知道报文电信设备的IP地址,在主窗口设计中已经有电信设备IP地址手动输入窗口。但是我们认为这样设计非常不方便,因为很多时候我们并不确定电信设备的IP地址。所以我们设计了基于UDP的广播搜索功能,能实时搜索局域网内的电信设备主机的各种信息,比如IP地址、主机号、TCP发送报文所使用的端口。同时当局域网中有多台电信设备的时候,能实时更新电信设备的加入与退出信息。

 多点传送
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值