telnet与原始tcp连接有何不同

Pra*_*yot 21 python sockets network-programming telnet

我试图通过python脚本将命令发送到服务器.我可以看到服务器上建立的套接字连接.但是我发送的命令似乎没有通过(服务器在套接字上读取).服务器当前支持telnet命令解释程序.即:你telnet到命令地址和端口,你可以开始发送字符串命令.我的问题是,与通过tcp套接字发送字符串有什么根本不同,而不是使用telnet.我既使用了原始套接字,也使用了Twisted框架.

Bri*_*ite 21

Telnet是一种传递有关通信信道的控制信息的方法.它定义了行缓冲,字符回显等,并在连接开始时(在极少数情况下,在会话期间)通过一系列will/wont/do/dont消息完成.

这可能不是您的服务器文档的含义.相反,它可能意味着您可以使用"Telnet"之类的程序打开端口的TCP套接字,并与服务器上的命令解释程序进行交互.

当Telnet程序连接时,它通常在响应之前侦听这些控制消息,因此将使用实际上不使用telnet协议的TCP /套接字连接,恢复为简单的原始管道.服务器必须执行所有字符回显,行缓冲等.

因此,在您的情况下,服务器可能使用没有telnet转义序列的原始TCP流,因此没有区别.


ecb*_*die 8

请记住,Telnet是一种应用层协议,而TCP是一个传送层协议.Telnet 使用 TCP来传输数据.这是Telnet和TCP之间的一个重大差异.

请参阅: OSI模型维基百科页面