输送带厂家
免费服务热线

Free service

hotline

010-00000000
输送带厂家
热门搜索:
行业资讯
当前位置:首页 > 行业资讯

网络故障测试仪远程监控软件的设计

发布时间:2020-07-21 18:22:51 阅读: 来源:输送带厂家

远程监控是指在网络中由一台设备(客户端)通过远程监控软件远距离监视与控制目标设备(服务器端)的技术。操作者可以监视被控端设备的屏幕显示,启动被控端设备应用程序,执行操作指令,获取结果。现代远程监控技术是实时在线的监控方式,借助于计算机、网络和通信技术,具有控制功能强、操作简便和可靠性高等特点。 网络故障测试仪是基于Linux操作系统的嵌入式手持设备,主要用于测试网络故障现场、评估性能、提供专家解释。专家亲临故障现场需要耗费一定的时间和财力,远程监控软件可以帮助专家通过互联网络访问远端的测试设备,了解网络运行参数,给出解决方案,实现远程专家系统。远程监控软件将为便携式网络故障测试仪提供有效的远程操作、监控及远程技术支持能力。 1、远程监控软件的功能和结构 1.1 软件主要功能 网络故障测试仪是一台便携式设备,通常接人需要测试的网络中。远程监控将为用户提供在个人电脑上直接观测网络状态的能力;同时当网络出现故障时,也能为远程专家了解网络故障,给出解决方案提供便利。因此,远程监控软件主要实现对异地测试仪的操作功能,显示设备返回的状态;通过在设备间建立起的数据交换通道,实现双向的数据通信。 远程监控软件实现在监控时,获取客户端发出的控制命令,控制服务器根据应用层协议对命令解释后执行相应的动作,返回执行结果;同时设置服务器根据用户界面所需显示参数,定时执行操作返回结果数据刷新界面。 1.2 软件体系结构 软件功能分解到通信的两个端点上,即客户端和服务器端,采用Client/Server模式。这样能提高设计的灵活性,易于系统的扩展。服务器端集成在测试仪中,与设备的其他功能模块协调工作,为客户端提供执行共享资源的管理应用程序人口;客户端则提供交互界面及结果显示;数据交换通道的建立由双方的数据通信模块负责。从而实现点到点的直接控制监控,满足实时性要求。软件体系结构如图1所示。

图1 系统体系结构

① 客户端的主要功能模块为:消息输入/显示模块,通信管理模块。消息输入模块负责将用户界面的按钮事件传送到通信模块,通信模块将命令信息发送到受控端;受控端执行操作后返回的成功或失败信息交由客户端消息显示模块根据信息的格式进行显示。 ② 服务器端的主要功能模块为:通信管理模块,命令解释模块,函数调用模块。服务器处于侦听状态, 一旦接收到合法的连接请求,则建立信号通路,通过通信管理模块接收客户端发来的命令信息,经解释模块解释后,调用函数执行相应的指令,并将结果返回到客户端。 2、远程监控软件设计 2.1 消息输入/显示模块实现 客户端输入/显示模块的开发采用Visual C++,利用模块化、通用性强的特点,实现远程监控中用户界面的编写。用户显示界面保持与设备界面的一致,方便用户操作。 2.2 通信模块实现 (1) Socket编程 数据通信模块中的数据通道建立采用Socket编程。Socket支持TCP/IP协议网络通信的基本操作;它屏蔽了网络底层的通信细节,使编程简单;它对通信端点进行了抽象,提供发送和接收数据机制及打开、计算和关闭会话的能力。本项目中,客户端运行在Windows操作平台下,采用WinSock来编程实现命令和数据信息的传输;而服务端运行在Linux操作平台下,通信直接使用Socket编程实现。 (2) 通信建立 服务器与客户端开始都必须调用socket()函数产生一个Socket套接字;然后服务器调用bind()函数,将套接字与本地网络地址捆扎在一起,在网络上标志该套接字;只有当服务器执行完accept()进入监听模式、阻塞状态后,才能接收客户端的connect()请求并决定是否接收数据;建立连接后,客户端与服务器之间便可以双向传输数据。服务器主要通信代码: listenfd=socket(AF—INET,SOCK—STREAM,0) bind(1istenfd,(SOCKADDR %)sockaddr—echo,sizeof(struct sockaddr_in)) echofd=accept(1istenfd,(SOCKADDR %)(sockaddrcli),sizeof(SOCKADDR)); while((read—n=read(echofd,revbuf,BUFLEN))0) {.一//指令解释与函数调用} if((write—n=write(echofd,okbuf,strlen(sendbuff)))0) {.一//将结果返回给客户端} 其中,客户端与服务器间制定统一的数据通信协议,所有的数据和指令信息统一编码,编码格式为:命令代码:数据部分(各数据之间用#分隔)。在传输用户密码时,采用事先约定好的数据加密密匙,以防明文形式传输造成的信息泄漏。

02 C 语言的程序结构

JavaScript 数组

12 Django 中模板变量使用