telnet中的nvt 与vt100是什么关系?

看着捉急 2012-11-06 11:16:34
我一直认为vt100是nvt的一种,这样对吗?如果不是那nvt格式是怎样的呢?求高手指教
...全文
412 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
看着捉急 2012-11-08
  • 打赏
  • 举报
回复
这个貌似困难啊,一大堆ESC序列, ESC序列的意义何在? ESC属于vt100等终端类型的指令,既然有了nvt格式,为什么还要终端类型?
ndy_w 2012-11-08
  • 打赏
  • 举报
回复
"阅读屏幕"意思是理解telnet服务器返回的字节流。如果正常telnet在屏幕输出,人可以看懂;而电脑要看懂,则需要分析字节流。在屏幕上输出对电脑理解毫无帮助。 电脑需要理解的东西包括: 当前是什么界面? 光标在哪个格子? 提示信息是成功还是失败? 查询结果的每个字段是什么值? ... 这些都需要从返回的字节流分析出来。
看着捉急 2012-11-07
  • 打赏
  • 举报
回复
引用 5 楼 ndy_w 的回复:
用telnet来交互,就是模拟在telnet中按键,分析telnet返回给你的东西(本来是用来给你显示的,你要从中提取你需要的信息)。在这一层以上才是业务。 比如写个bool transaction(int param),那么你需要先搞清楚,在telnet中如何按键,才能把param填在正确的格子里,然后如何提交,成功/失败显示的有何不同……然后就把按键序列send出去……
我目前基本上是像你说的这样处理,但我就是觉得实现上比较痛苦,也不知道现在的实现思路是否正确
看着捉急 2012-11-07
  • 打赏
  • 举报
回复
服务器可能忽略发送快的序列,但这个项目要求性能的,公司是做银行柜面软件的,之所以要用到这个,是因为有些银行业务系统只支持用telnet连接,这个项目就是要用程序实现 本来是在telnet连接上手动输入,现在要由程序代替手工输入来对业务系统操作,这个必须要高效可靠的,目前的我还写不出来啊,实现个telnet就不是个容易的活。
看着捉急 2012-11-07
  • 打赏
  • 举报
回复
你说的真是太符合我的情况了,我就是经常遇到发送过快,结果收到的响应不对的情况,我用的是阻塞模式的socket,但有时会出现单步调试收到的数据是正确的,全速运行就错了,单步调试稍微点快一点也会出错,那么怎样解决这种问题呢,求指教啊,公司里没有人问,我是个刚毕业的大学生,痛苦啊
ndy_w 2012-11-07
  • 打赏
  • 举报
回复
用telnet来交互,就是模拟在telnet中按键,分析telnet返回给你的东西(本来是用来给你显示的,你要从中提取你需要的信息)。在这一层以上才是业务。 比如写个bool transaction(int param),那么你需要先搞清楚,在telnet中如何按键,才能把param填在正确的格子里,然后如何提交,成功/失败显示的有何不同……然后就把按键序列send出去,读取telnet返回的内容,分析是成功还是失败,返回。 要注意: 1 要了解telnet当前在哪个界面。这影响到按键序列。建议每个操作完了都回到某一特定界面。 2 有可能按键序列要分段发送,即按太快了可能被server忽略,导致失败。
看着捉急 2012-11-07
  • 打赏
  • 举报
回复
还是非常感谢你不厌其烦多次照顾我的帖子。“阅读屏幕”是个什么概念,是等该输出的东西都输出之后再输入吗?但这些工作都是在后台运作,其实不需要把他们输出来的,我把交易数据的各个字段一个一个的发,发一个接收响应,一旦这个字段错了,下面的字段就不需要发了,这一次交易就以失败结束了,业务系统退到主菜单,等待处理下一次交易。也就是说,我不用输出,只需判断对错,这只是现在考虑的,以后要处理查询业务,要返回查询结果还要头痛,更加麻烦。给我的测试环境无法处理查询,所以我现在也没考虑,也不知道以后怎么办
ndy_w 2012-11-07
  • 打赏
  • 举报
回复
引用 7 楼 FRcheng 的回复:
服务器可能忽略发送快的序列,但这个项目要求性能的,公司是做银行柜面软件的,之所以要用到这个,是因为有些银行业务系统只支持用telnet连接,这个项目就是要用程序实现 本来是在telnet连接上手动输入,现在要由程序代替手工输入来对业务系统操作,这个必须要高效可靠的,目前的我还写不出来啊,实现个telnet就不是个容易的活。
telnet本来是人机交互用的,机器之间的话,“阅读屏幕”这一部分仿真比较费力。 银行端改动会简单很多。不过银行是大爷。 键入过快的解决,依然是“阅读屏幕”,等提示你输入了,再发送。
ndy_w 2012-11-06
  • 打赏
  • 举报
回复
nvt是telnet协议中定义的术语,vt100是dec公司的一个产品,影响较大,所以有很多虚拟终端可以仿真vt100。 nvt的定义看看rfc318。
看着捉急 2012-11-06
  • 打赏
  • 举报
回复
谢了 ndy_w 我看了大致看了下RFC318文档,的确是这样,sniffer我没用过,实现telnet用异步socket还是阻塞模式的socket好,我要利用telnet作为传输交易数据的通道,与unix服务器上的一个系统交互,感觉和协议混在一起不好处理,能给我个思路么?
ndy_w 2012-11-06
  • 打赏
  • 举报
回复
一般键的ascii码直接发就行。方向键之类就要搞成ESC序列。 pc键盘建议用ansi类型。 建议你一边搞个终端telnet,一边用sniffer抓包,就知道要选个菜单或键入参数该发什么东西了。
看着捉急 2012-11-06
  • 打赏
  • 举报
回复
本地字符到nvt的映射需要自己编程实现,还是?????

18,356

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧