科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网网络频道自己编制支持终端打印TELNET程序(3)

自己编制支持终端打印TELNET程序(3)

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

在行业用户中,大多数基层计算机应用系统采用UNIX作OS,用支持RS232连接的终端做业务处理,打印也通过终端实现。

作者:论坛整理 来源:ZDNet网络安全 2007年12月19日

关键字: telnet命令 opentelnet linux telnet telnet入侵 telnet端口 telnet

  • 评论
  • 分享微博
  • 分享邮件

  ......

  End Sub

  Private Sub Telnet_Com(CHRR As Variant) ‘TELNET指令过滤函数

  ‘要把相应的应答指令直接发送给服务器

  ......

  End Sub

  Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) ‘数据到达以后,触发该事件

  Dim CHRR As Variant

  Winsock1.GetData CHRR ‘读取接收到的数据

  Telnet_Com CHRR ‘TELNET指令过滤函数

  newRecdata CHRR ‘虚拟终端处理函数

  End Sub

  三、 在PC机上实现终端打印

  在终端机上主要有屏幕打印、拷贝打印、透明打印、控制打印、格式打印等打印形式,一般用在业务处理上的主要用透明打印和控制打印,这里主要介绍透明打印和控制打印。

  (一)、透明打印的实现

  在透明打印方式下,终端从服务器收到的字符除(11H)和(13H)外均不处理,全部送到打印机去,这种方式一般适用于带有汉字字库的打印机。应用程序发出ESC[5i控制指令,指出随后送出的字符是透明打印的内容,发出ESC[4i控制指令指出透明打印结束。根据以上叙述,在用Winsock控件的GetData方法获得的字符串中出现ESC[5i控制指令时,就要把随后的字符送到打印端口,而不是送到显示界面对应的显存,在GetData方法获得的字符串中出现ESC[4i控制指令时,就要把随后的字符送到显示界面对应的显存,而停止送到打印端口。假设打印机接在LPT1端口,把字符串送到打印机的例程如下:

  Private Print_ComT1(DayBuf as String) ‘透明打印处理函数

  ......

  Open "LPT1:" For Binary AccessWrite As #1 ‘把打印机作为文件打开

  If DaBuLen >0 Then ‘断判是否有打印数据

  Put #1, , StrConv(DayinBuf, vbUnicode) ‘把数据送到打印机

  End If

  Close #1

  ......

  End Sub

  (二)、控制打印的实现

  控制打印的实现比透明打印相对而言要复杂些,在控制打印方式下,打印的汉字字形、行距、字距控制等均使用终端命令实现,对打印机的要求是能支持图形打印。当终端收到ESC[/5i控制指令时,终端对随后收到的字符串,作为控制打印的内容(内含打印属性命令)进行处理,当终端收到ESC[/4i控制指令时,结束控制打印。控制打印的打印属性命令有几种,详细解释,请查阅相关资料,这里以ESC[/PsT命令来举例。Ps=0时,字符大小正常;Ps=1时,字符横向放大到2倍;Ps=2时,字符纵向放大到2倍;Ps=3时,字符横、纵各放大到2倍。显然,从上面的说明可以看出,打印属性命令,必须由TELVT100程序来解释,并对有关打印字符串进行处理,然后将处理过的内容交给打印机。

    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章