这个协商,看起来很绕。
可以理解为有目的,或无目的的协商。
程序可能就是机械的提要求,或者应答。
如果从人的视角看,可能就是一个人前后态度不一样。
甚至可能出现死循环。关于telnet协议选项协商时的对话问题--CSDN问答
看看下面这个协商,特别是对回显(即1)的协商过程
首先,收到远程服务端的信息(第一次接)
255 DO 24 255 DO 32 255 DO 35 255 DO 39
远程服务器说
/*========================
我想要求客户端激活终端类型
我想要求客户端激活终端速度
我想要求客户端激活39功能(手册没写是啥)
=========================*/
之后,我们客户端返回以下信息(第一次发)
255 wont 24 255 wont 32 255 wont 35 255 wont 39
客户端说
/*==================================
客户端想禁止 你说的所有的功能(24,32,35,39)
=================================*/
服务器收到了我们发出的信息之后,又发出以下信息(第二次接)
255 will 3 255 DO 1 255 DO 31 255 will 5 255 DO 33
服务器又说
/*======================================
我自己将激活回抑制继续进行
我希望客户端激活回显功能
我希望客户端激活窗口大小
我自己将激活状态
我希望客户端激活远程流量控制
======================================*/
之后我们客户端返回以下信息(第二次发)
255 DO 3 255 will 1 255 wont 31 255 DONT 5 255 wont 33
客户端说
/*======================================
我希望服务器端激活抑制继续进行
我自己将激活回显功能
我自己想禁止窗口大小功能
我希望服务端禁止状态功能
我自己想禁止远程流量控制
======================================*/
服务器收到我们消息之后,又给我们消息(第三次接)
255 DONT 1 255 will 1
意思为
/*=====================================
我想让客户端禁用回显
我想自己使用 回显
=====================================*/
我们客户端接着发(第三次发)
255 wont 1 255 DO 1
意思为
/*=====================================
我也不想自己开启回显
同事我也觉得你开启回显很合适
=====================================*/