不影响前台运行的打印系统技术方案

技术编号:2830245 阅读:239 留言:0更新日期:2012-04-11 18:40
本发明专利技术涉及一种不影响前台运行的打印系统,其特征在于,包括:前台装置,用于通过网络接口发送打印字串的对应标识和打印便参;后台装置,通过网络接口与所述前台打印装置相连,用于接收并依所述标识获取对应的打印字串,再结合所述变参一起进行解析。这种系统,通过对打印信息进行替换,把替换后的信息和变参同时发送到后台,由后台进行解析还原出最终需要的信息,从而避免在系统前台进行字串解析,极大节省前台处理器的处理能力和前后台的打印信息传送带宽,提高性能并保证了软件系统运行的安全性。

【技术实现步骤摘要】

本专利技术涉及一种在程序中进行打印的系统,具体涉及应用于需要在前后 台传送大量打印信息的打印系统。
技术介绍
目前,很多软件系统通过大量的打印来观察软件运行情况。 一般的打印 系统就是在前台调用打印接口对打印字串和变参进行解析,最后得到 一个含 有最终信息的字串,再把含有最终信息的字串发送到后台进行保存或显示。大量的打印信息虽然能直观的反映了软件系统的运行情况,但却对软件系统运行产生了极大影响,包括(-)在打印过程中,需要前台解析打印字串, 影响了软件系统的性能;t)在打印大量输出时,需要占用前后台大量的网络 带宽,从而对软件系统业务造成极大影响。同时由于打印需要对字串进行处 理,由于编程错误,导致传入的字串参数有误或者变参和实际要求不一致, 都可能导致软件系统前台死机,给系统带来极大的安全隐患。为了减少大量打印对系统的冲击, 一种方法是对打印进行控制。要求在 系统运行时能进行有选择的打印,从而减少打印量。但这种方式在无人值守 系统中很难使用,因为没人会去调整打印输出;其次在真需要大量打印时, 该方法无法控制打印量,还是可能产生问题。 一种是对打印方法进行限制, 由一个低优先级任务来进行打印任务,在空闲时进行打印,这样不影响系统 性能,配合上网络状况检测来控制打印避免影响网络。但该方法在系统繁忙 时容易导致低优先级任务无法得到处理,从而大量丢掉打印。
技术实现思路
本专利技术需要解决的技术问题是提供一种不影响前台运行的打印系统,无须在前后台传送大量的打印信息,同时也不必在前台对打印字串进行解析。本专利技术的上述技术问题这样解决,提供一种不影响前台运行的打印系 统,包括二前台装置,用于通过网络接口发送打印字串的对应标识和打印便参;后台装置,通过网络接口与所述前台打印装置相连,用于接收并依所述 标识获取对应的打印字串,再结合所述变参一起进行解析。按照本专利技术提供的打印系统,所述打印字串的对应标识是打印字串在内 存中的地址。按照本专利技术提供的打印系统,所述打印字串所在运行文件是bin格式, 所述前台装置包括打印字串偏移获取单元用于根据打印字串在内存中的地 址和所述运行文件加载基地址,获得所述打印字串在bin运行文件中的偏移, 所述后台装置包括打印字串恢复单元用于再从磁盘文件的相应偏移位置读 出字串,还原出了前台打印接口所需的所述打印字串。按照本专利技术提供的打印系统,所述打印字串标识的对应标识是前台装置 调用打印函数的指令地址。按照本专利技术提供的打印系统,所述前台装置包括打印字串偏移获取单 元用于根据所述指令地址,从带调试信息的运行文件中获得所述打印字串 在源码中的位置,所述后台装置包括打印字串恢复单元用于再根据该位置 从源码中获得所述打印字串。按照本专利技术提供的打印系统,所述前台装置还包括变参获取单元还用 于根据其调用打印函数后返回的地址获得所述变参。按照本专利技术提供的打印系统,所述变参获取单元用于从该地址获得返回 指令的内容,再根据指令格式分析所述内容获得参数长度值len,从该地址 开始,往下拷贝对应所述长度值len的长度,获得所述变参。按照本专利技术提供的打印系统,所述后台装置还包括字符串解析单元,即 运行在其上的字符串解析程序。本专利技术提供的打印系统,通过对打印信息进行替换,把替换后的信息和 变参同时发送到后台,由后台进行解析还原出最终需要的信息,从而避免在系统前台运行时进行字串解析,极大节省前台处理器的处理能力和前后台的 打印信息传送带宽,提高性能并保证了软件系统运行的安全性。附图说明下面结合附图和具体实施例进一步对本专利技术进行详细说明。 图1是运行文件在内存中的存放示意图。图2是前台调用打印函数后的堆栈布局示意图。 图3是本专利技术前台变参获取的程序流程示意图。 图4是本专利技术后台打印字串还原的程序流程示意图。具体实施例方式首先,说明本专利技术思想本专利技术打印系统和方法包括以下组成部分1. 前台通过前后台的网络接口发送打印信息。2. 后台设置接受程序,接受前台发送来的信息。3. 有一个字串解析程序。但该解析程序设在后台,不设在前台。 同时还包括如下组成部分4. 在前台,对打印字串以 一个可还原打印字串的标识进行替换。5. 在前台,通过堆栈直接获得变参。在前台不再和打印字串结合解析变 参内容。6. 把步骤4和步骤5获得的标识和变参,通过步骤1所述的接口把变参 内容发送到后台。7. 步骤2中设置的后台程序收到步骤6发来的内容后,通过规则,把其 中的标识还原为打印字串。8. 在步骤6还原储打印字串后,后台使用步骤3设置的解析程序,把还 原后的打印字串和步骤6发送的变参一起进行解析,得到最后的打印信息。本专利技术所述的步骤4的替换可以有如下几种方式4.1以打印字串在内存中的地址替换打印字串本身的信息 4.2以调用打印函数的指令地址替换打印字串本身的信息 第二,以下面描述的实现方式具体说明本专利技术方法,该实现古式包括-.2. 后台收到前台发来的打印信息后,首先取出打印字串的地址,同时读 取bin文件,获得真实的打印字串内容。3. 根据获得的打印字串和变参,后台进行打印解析,得到真实的打印内容。上面的步骤中包括二大关键部分,具体是 (-)打印字串的替换与还原本专利技术通过对打印字串进行替换,以替换后的标识做为打印信息发给后 台。为了后台能够解析打印,要求替换后的信息能够还原成原来的打印字串。 一种可行的方法是把打印字串在内存中的地址做为替换标识。打印输出接口 一般如下printf(const char * fmt,...)。其中的参数fmt表 示打印字串在内存中的地址,后面的…表示打印所需的变参。如果打印字串是在代码中硬编码的,则在运行文件中将会储存该字串。 如图1,以运行加载到前台运行文件的格式是bin格式文件为例,该bin文 件是整个按顺序加载到内存中的。从bin文件的加载方式可以看出,相对与 内存零地址10的fmt值减去一个简单的偏移量11,即加载基地址11,就可 以获得fmt所代表的字串在bin文件中的位置。两者是一个简单的线性关系。后台在获得打印字串的内存地址后,把该地址减去加载基地址,就可以 获得打印字串在bin运行文件中的偏移。从文件的相应偏移位置读出字串, 就还原出了前台打印接口所需的打印字串。如果运行文件不是bin格式,而是其它格式,同样也都可以根据文件格 式和加栽基地址获得打印字串在相应格式文件中的偏移。(二)变参的获取为了在后台解析获得完整的打印信息,还需要前台发送打印字串所需要的变参。为了高效简单的获得变参,我们考察调用打印函数后的反汇编。0x010e3b0a68 80 39 0e01PUSH0xl0e39800x010e丽6a03PUSH0x010e3b1168 Ob 02 00 00PUSH0x20b0x010e3b166a 12PUSH180x010e3M868 84 01 00 00PUSH0x184Ox010e3bld68 c0 31 OeOlPUSHOxlOe31cO0x010e3b22e8 09 58 6d ffCALLprint0x010e3b2783 c4 20ADDESP, 32当调用打印函数返回后,需要对原来压参进行调整。ADDESP,32这句 话的意思就是对堆栈进行调整。对堆栈调整的大小32就是压参的长本文档来自技高网...

【技术保护点】
一种不影响前台运行的打印系统,其特征在于,包括:前台装置,用于通过网络接口发送打印字串的对应标识和打印变参;后台装置,通过网络接口与所述前台打印装置相连,用于接收并依所述标识获取对应的打印字串,再结合所述变参一起进行解析。

【技术特征摘要】
1、一种不影响前台运行的打印系统,其特征在于,包括前台装置,用于通过网络接口发送打印字串的对应标识和打印变参;后台装置,通过网络接口与所述前台打印装置相连,用于接收并依所述标识获取对应的打印字串,再结合所述变参一起进行解析。2、 根据权利要求1所述打印系统,其特征在于,所述打印字串的对 应标识是打印字串在内存中的地址。3、 根据权利要求1或2所述打印系统,其特征在于,所述打印字串 所在运行文件是bin格式,所述前台装置包括打印字串偏移获取单元用于 根据打印字串在内存中的地址和所述运行文件加载基地址(ll),获得所述打 印字串在bin运行文件中的偏移,所述后台装置包括打印字串恢复单元用 于再从磁盘文件的相应偏移位置读出字串,还原出了前台打印接口所需的所 述打印字串。4、 根据权利要求1所述打印系统,其特征在于,所述打...

【专利技术属性】
技术研发人员:叶媲书黄文政傅红燕张人剑王建新
申请(专利权)人:中兴通讯股份有限公司
类型:发明
国别省市:94[中国|深圳]

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1