我正在尝试使用套接字协商一个telnet连接。套接字是工作的,但服务器告诉我那件事:
ÿýÿýÿûÿû
login:
ÿýÿýÿûÿû
的意思是 255 253 1 255 253 31 255 251 1 255 251 3
我阅读了所有的 RFC 文档,但我不明白应该用什么来响应才能够向服务器发送(字符串 ASCII 数据?),我的愿望是成功运行登录提示,然后向服务器发送像“halt”或其他命令。
提前感谢您的回答。
我正在尝试使用套接字协商一个telnet连接。套接字是工作的,但服务器告诉我那件事:
ÿýÿýÿûÿû
login:
ÿýÿýÿûÿû
的意思是 255 253 1 255 253 31 255 251 1 255 251 3
我阅读了所有的 RFC 文档,但我不明白应该用什么来响应才能够向服务器发送(字符串 ASCII 数据?),我的愿望是成功运行登录提示,然后向服务器发送像“halt”或其他命令。
提前感谢您的回答。
根据RFC 854:
由于NVT是没有启用选项时剩余的部分,所以“不要”和“拒绝”响应保证将连接留在双方都可以处理的状态。因此,所有主机都可以实现他们的TELNET进程,完全不知道不支持的选项,只需对任何无法理解的选项请求返回拒绝。
也就是说,对于每一个“WILL”,回复“DONT”。对于每一个“DO”,回复“WONT”。
在您的情况下,您已经收到了(请参见IANA分配的telnet选项):
255 253 1 IAC DO ECHO
255 253 31 IAC DO NAWS
255 251 1 IAC WILL ECHO
255 251 3 IAC WILL SUPPRESS-GO-AHEAD
所以你应该这样回复:
255 252 1 IAC WONT ECHO
255 252 31 IAC WONT NAWS
255 254 1 IAC DONT ECHO
255 254 3 IAC DONT SUPPRESS-GO-AHEAD
请注意,你并不需要知道1、3或31实际代表什么。这就是美妙之处。你甚至可以拒绝这些选项而不必知道它们的定义。你只需默认使用网络虚拟终端。
在RFC 854中查找
255 253 1 IAC DO #1
255 253 31 IAC DO #31
255 251 1 IAC WILL #1
255 251 3 IAC WILL #3
现在在这里查找参数值:1 := 回声,31 := 窗口大小。