Lecture 32 - More Streams & Sockets

Talking to other types of servers is done in a similar fashion. In all cases, we create a socket and then extract the input and output streams so that we can send commands and read replies. What differs is the protocol, that is, the list of commands that the server will understand. For each command, we need to decide how to process it.

The default port for a POP server is 110.

Here are the commands provided by a POP server:

USER username
This command tells the POP server which user's mail to read. Instead of username you would identify the account to log into. This command responds with a single line which starts with the string +OK.
PASS password
This command tells the POP server the password corresponding to the previous user account. Instead of password you would provide the user's actual password. This command responds with a single line. If the line begins with +OK the login worked. If the login failed, it returns a line beginning with -ERR.

The remaining commands will only work after a successful login.

STAT
This returns some simple statistics about the mailbox. The line it returns has the following form:
+OK 3 496
The first number reports the number of messages in the mailbox. The second reports the total number of characters in all the messages.
TOP 1 0
This returns the header of the message followed by some number of lines. The first number identifies the message number to return. The second number indicates how many lines of the message body to return. As shown above, the command would return only the header for the 1st message.

This message returns first with a line that begins either with +OK or -ERR. It the line it returns begins with +OK, it then sends multiple lines that are the header and the number of body lines requested. You can tell when there it is done sending lines because the last line will consist of a single period character (.).

RETR 1
This command is a lot like TOP except that it returns the entire message requested, both header and body, in their entirety. The number you provide is the message number.

This command returns first with a line that begins either with +OK or -ERR. It the line it returns begins with +OK, it then sends multiple lines that are the header and complete body of the mail message requested. You can tell when there it is done sending lines because the last line will consist of a single period character (.).

QUIT
This command ends the connection with the mail server. It always returns with a single line beginning with +OK.

You can try out this commands using telnet to connect to a mail server on port 110. Just type in the commands shown above and see the responses that you get back.

There is another example program that is similar to your lab project this week. It involves sending objects over a network.

DrawingPanelNetwork