How does telnet differ from a raw tcp connection

Pradyot picture Pradyot · Oct 4, 2012 · Viewed 26.2k times · Source

I am trying to send commands to a server via a python script. I can see the socket connection being established on the server. But the commands I am sending across , do not seem to make it through(server does a read on the socket). The server currently supports a telnet command interpreter. ie: you telnet to the command address and port, and you can start sending string commands. My question is , is there anything fundamentally different from sending strings over a tcp socket, as opposed to using telnet. I have used both raw sockets as well as the Twisted framework.

Answer

Brian White picture Brian White · Oct 4, 2012

Telnet is a way of passing control information about the communication channel. It defines line-buffering, character echo, etc, and is done through a series of will/wont/do/dont messages when the connection starts (and, on rare occasions, during the session).

That's probably not what your server documentation means. Instead, it probably means that you can open a TCP socket to the port using a program like "Telnet" and interact with a command interpreter on the server.

When the Telnet program connects, it typically listens for these control messages before responding in kind and so will work with TCP/socket connections that don't actually use the telnet protocol, reverting to a simple raw pipe. The server must do all character echo, line buffering, etc.

So in your case, the server is likely using a raw TCP stream with no telnet escape sequences and thus there is no difference.