远程打印调试信息工具LogPrintf

1.   功能概述

LogPrintf工具为用户提供了在本地计算机上监视远程设备调试信息的能力。通常情况下,可以在本地计算机上使用telnet程序,用它连接到服务器;但是在卫星网络的条件下,TCP连接质量较低,telnet连接很容易断开,影响调试体验。当服务器程序启动之后,各个待调试的网络设备的调试信息都会被收集到服务器。客户端程序启动时自动地在服务器上尝试注册,注册成功后调试信息会通过UDP协议传回本地,就像直接在服务器观察打印信息一样。本工具使用者可以在本地程序中修改配置文件来改变端口参数。

2.   程序结构框图

1) 待调试设备上嵌入LogPrintf()函数

        待调试设备每次调用LogPrintf()时,都会把打印信息通过UDP协议向服务器端发送。而且可以设置调试信息的type和level

2) 服务器端程序分为device&client监听模块、发送模块:

        Source监听模块监听在固定的端口13013,监听两类信息,其中A来自device,B来自Client:

A. 等待调试设备发送的调试信息,这些信息会被打上type和level标签。根据标签信息,以及Client注册情况,服务器会调用发送模块,选择性转发调试信息给各个客户端。

B.接收来自客户端的控制信息。包括注册、查询、删除操作

a.      客户端注册时,会带有两个参数numObj、ObjList,分别是客户端监听对象的个数和客户端监听对象。其中客户端监听对象是一个三元结构:<监听type,监听level,监听IP>。控制模块接受了这次注册后,会维护一个Client信息列表,作为服务器过滤、转发的依据。这个列表中每个客户端也包含一个定时器,定时器结束时则从列表中删除该客户端。最后调用发送模块返回注册操作结果。

b.      客户端查询时,监听模块从客户端信息列表中查询,并返回结果。

c.      客户端删除时,监听模块更新客户端信息列表,并返回结果

发送模块负责向客户端发送控制信息和普通调试信息,通过字段的不同取值来区分控制信息和普通调试信息。服务器端在内存维护一个客户端信息列表,每项包括1.监听主体2.定时器3.监听目标列表(包括目标IP、目标type、目标level)。监听目标列表是过滤普通调试信息的依据。

3) 客户端程序分为监听模块、server请求模块、本地输出模块

监听模块监听用户的键盘输入,以及服务器端的控制信息输入:

a.      程序启动或者用户输入注册命令时,监听模块尝试出一个可行的端口,并且通过server请求模块向服务器端申请,成功后可以得到返回结果,在本地打印结果。如果注册成功,则开始监听申请成功的端口,并创建一个定时器,定时器结束后再次向服务器注册

b.      用户输入查询命令时,通过server请求模块向服务器查询。

c.      用户输入关闭命令时,通过server请求模块向服务器申请注销。

d.      当监听的socket收到来自server的控制信息或者普通调试信息时,在本地打印。

Server请求模块根据不同的请求,向server发送不同格式的信令。

本地打印模块负责把收到的控制信息和普通调试信息打印。


3.   主要过程流程图

1) 初始化过程

        初始化过程中,客户端首先尝试一个可行的端口,然后向服务器端申请,服务器端更新后,设置定时器,向客户端返回本次初始化的结果。客户端收到结果后,也启动一个定时器。服务器端在内存维护一个客户端信息列表,每项包括1.监听主体、2.定时器、3.监听目标列表(包括目标IP、目标type、目标level)

2) 客户端关闭过程


        客户端关闭时,先通过端口通知服务器端注销这个地址,服务器端注销成功后,会更新地址列表,并返回操作结果。最后客户端再关闭socket,完成整个关闭过程。


1.   外部通信接口

1) Devices => Server

MSG

TYPE

LEVEL

STRING

1B

1B

1B

LENGTH

MSG=0代表这段消息是普通的调试信息,待调试设备向服务器发送打标后的调试信息,标志包括类型TYPE和级别LEVEL。

2) Client => Server

MSG=1代表这段消息是控制信息,控制信息又分为以下三类:

a.      申请(OP=0x00)

MSG

OP

PORT

NUM

TYPE0

LEVEL0

IP0

TYPE1

LEVEL1

IP1

……

 

1B

1B

2B

2B

1B

1B

4B

1B

1B

4B

 

 

申请时OP=0x00,num表示客户端的监听目标的个数,每个监听目标都包含三项:监听类型、监听级别、监听IP地址。其中监听类型以独热方式编码,可以通过掩码选择多个类型;其中的监听级别,表示需要监听的

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值