tutorial socket script programming examples python sockets network-programming telnet

python - socket - ¿En qué se diferencia telnet de una conexión tcp sin formato?



tcp socket python (3)

Desde la página de Wikipedia en telnet.

... Los datos del usuario se intercalan dentro de la banda con la información de control de Telnet ...

Entonces, para responder a su pregunta, sí, telnet difiere de un socket en bruto.

RFC 854 describe el protocolo de telnet si desea intentar implementarlo o puede usar telnetlib si prefiere un cliente Python existente.

Estoy tratando de enviar comandos a un servidor a través de un script de python. Puedo ver la conexión de socket que se está estableciendo en el servidor. Pero los comandos que estoy enviando no parecen haber llegado (el servidor hace una lectura en el zócalo). El servidor actualmente soporta un intérprete de comandos telnet. es decir: se telnet a la dirección de comando y al puerto, y puede comenzar a enviar comandos de cadena. Mi pregunta es si hay algo fundamentalmente diferente al envío de cadenas a través de un socket TCP, en lugar de usar telnet. He utilizado tanto sockets en bruto como el marco Twisted.


Telnet es una forma de pasar información de control sobre el canal de comunicación. Define el búfer de línea, el eco de caracteres, etc., y se realiza a través de una serie de mensajes de voluntad / uso / no / no cuando la conexión se inicia (y, en raras ocasiones, durante la sesión).

Probablemente eso no sea lo que significa la documentación de su servidor. En su lugar, probablemente significa que puede abrir un socket TCP al puerto utilizando un programa como "Telnet" e interactuar con un intérprete de comandos en el servidor.

Cuando el programa Telnet se conecta, generalmente escucha estos mensajes de control antes de responder en especie y, por lo tanto, funcionará con las conexiones TCP / socket que en realidad no usan el protocolo telnet, volviendo a un simple conducto sin formato. El servidor debe hacer todo el eco de caracteres, búfer de línea, etc.

Entonces, en su caso, es probable que el servidor utilice una secuencia TCP sin procesar sin secuencias de escape de telnet y, por lo tanto, no hay diferencia.


Tenga en cuenta que Telnet es un protocolo de capa de aplicación, mientras que TCP es un protocolo de capa de transporte . Telnet utiliza TCP para transmitir datos. Esa es una gran diferencia fundamental entre Telnet y TCP.

Ver: página de wikipedia del modelo OSI