Introduction
I've developed a Telnet application for implementing manual connection and data sending capabilities to Internet servers. You may use it for text mode Internet protocols (SMTP, POP, HTTP, WHOIS etc.) for sending, retrieving emails, whois queries, and so on. The application also allows opening ports on local computers for incoming connections.
Background
You need an understanding of Internet protocols to be able to connect to servers and implement commands. Have a look at the corresponding RFCs available online.
Using the code
Click the first red button on the toolbar (CTRL+N) to connect to an Internet server on a particular port.
The server address combo box is filled with predefined addresses, loaded from a hosts file present in the same directory as the Telnet application. After being connected to the server, you may send text messages to it. Click the INS key button in the text view, type in the command you want to send (if it won't fit in one single line, press ENTER to move the caret to the next line; also, in the multi-line text messages, end the last string you typed with an ENTER, and press ESC to send it), then press the ESC key to send the data you typed in. Wait for the response from the server.
This one provides an example output of a whois query on port 43:
In case of getting disconnected, press CTRL+R to redial connection to that server.
To listen on a particular port, press CTRL+L and enter the port you want to open:
Try to open port 80 and enter http://127.0.0.1 in your IE browser while disconnected from the Internet. You will get a message similar to that appearing in the text view. You may send a reply to the IE browser with the same mode as I described before (INS, type the text message, ENTER, ESC).
The client part is implemented with the CClientDoc
, CClientView
pair and the server part with the CServerDoc
, CServerView
pair.
There is one additional class in the project I developed:
Socket
It actually wraps WinSock functions for creating a socket, connecting to the server, sending and receiving data, and listening on a port. Have a look at the socket.h header.