Telnet子选项协商

Telnet子选项协商有些选项不是仅仅用“激活”或“禁止”就能够表达的

指定终端类型就是一个例子,客户进程必须发送用一个ASCII字符串来表示终端类型

为了处理这种选项,我们必须定义子选项协商机制

在RFC 1091[VanBokkelen 1989]中定义了如何表示终端类型这样的子选项协商机制

首先连接的某一方(通常是客户进程)发送3个字节的字符序列来请求激活该选项

这里的2 4(十进制)是终端类型选项的ID号

如果收端(通常是服务器进程)同意,那么响应数据是:然后服务器进程再发送如下的字符串:该字符串询问客户进程的终端类型

其中S B是子选项协商的起始命令标志

下一个字节的“2 4”代表这是终端类型选项的子选项(通常S B后面的选项值就是子选项所要提交的内容)

下一个字节的“1”表示“发送你的终端类型”

子选项协商的结束命令标志也是IAC,就像S B是起始命令标志一样

如果终端类型是ibm pc,客户进程的响应命令将是:第4个字节“0”代表“我的终端类型是”(在Assigned Numbers RFC文档中有正式的关于终端类型的数值定义,但是最起码在Unix系统之间,终端类型可以用任何对方可理解的数据进行表示

只要这些数据在termcap或terminfo数据库中有定义)

在Telnet子选项协商过程中,终端类型用大写表示,当服务器收到该字符串后会自动转换为小写字符

以上内容由大学时代综合整理自互联网,实际情况请以官方资料为准。

相关