Telnet IAC命令回答

时间:2012-05-02 12:39:38

标签: sockets networking ip telnet tcpclient

我正在尝试与套接字协商telnet连接。 套接字正在工作,但服务器正在告诉我这件事:

ÿýÿýÿûÿû

login:

ÿýÿýÿûÿû表示255 253 1 255 253 31 255 251 1 255 251 3

我阅读了所有的RFC文档,但我不明白我应该回应什么才能发送(字符串ascii数据?)到服务器,我的愿望是成功运行登录提示然后发送命令到服务器,如“停止”或其他。

提前感谢您的回答。

2 个答案:

答案 0 :(得分:24)

来自RFC 854

  

由于      当没有启用任何选项时,NVT就是剩下的,DO NOT和      Will NOT响应可以保证将连接保留在某个状态      哪两端都可以处理。因此,所有主机都可以实现它们      TELNET进程完全没有意识到没有的选项      支持,只是拒绝任何拒绝(即拒绝)      选项请求无法理解。

也就是说,对于每个WILL,请回复DONT。对于每个DO,请回复WONT

在您的情况下,您已收到(请参阅IANA assigned telnet options):

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的实际含义。那就是美。您甚至不知道他们的定义就可以拒绝这些选项。您只需默认使用网络虚拟终端。

答案 1 :(得分:1)

在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

现在在here中查找参数值:1:= echo,31:=窗口大小。