这因为有个任务涉及到使用telnet 来连接远端的路由器,获取信息,之后进行处理.
所以需要写一个自动telnet登录到远端,之后获取信息进行处理的程序.
自己C++ 一塌糊涂,所以几乎最开始就没打算用C++或者C写
论自己的实力,还是走C#路线稍微稳妥一点吧,
因为telnet 是使用tcp/ip 协议折腾的事情
很容易的想到使用socket来实现telnet
(当然你可以在进程里启用telnet 命令,只不过总觉得那样不够技术,
而且操作不自由--受限于telnet 这个指令)
ok,翻协议,弄清原理,结果比预想的难度要大一些
定义
============================================================
Telnet协议是TCP/IP协议族中应用最广泛的协议。
它允许用户(Telnet客户端)通过一个协商过程来与一个远程设备进行通信。
Telnet协议是基于网络虚拟终端NVT(Network Virtual Termina1)的实现,
NVT是虚拟设备,连接双方(客户机和服务器)都必须把它们的物理终端和NVT进行相互转换
============================================================
大概意思就是 跟远端通信的一套协议,之后这个协议无视你机器是啥型号,啥样子
只要是用telnet的,统统都可以看成是NVT
(类似面向对象中的继承关系:NVT是父类,各种实用telnet 的都继承与NVT)
好处非常明显,可以无视型号而直接使用标准命令,任何服从NVT 的设备都能通信
当然不可避免的,标准也同时代表着性能的损失:
由于NVT 得顾及到所有的各种型号的机器,所以他定义的 操作十分有限
(因为考虑到包括要支持类似9城小霸王那些性能很差,系统简单的机器),
为了解决NVT这个"为了照顾小霸王,而导致高端设备的功能不能用"的这个弊病,
Telnet琢磨出了一个比较好的解决方案
"用于扩展基本NVT功能的协议,提供了选项协商的机制" 来解决问题
类似那个经典的英国绵羊笑话
使用英文描述两只绵羊在路上碰到后发生的