SocketTools is a large collection of components that can be used to
create a variety of applications, so deciding what protocols and
controls you'll need to use will be the first step. SocketTools covers
several general categories, and there is some cross-over between the
components in terms of functionality. We'll cover the most common
programming needs and discuss what protocols should be used. Note that
this section doesn't cover all of the controls in SocketTools, and more
specific information for each component is available within the
technical reference documentation.
One thing you'll discover as you start to use SocketTools is that the
interface was intentionally designed to be consistent between many of
the controls. For example, both the File Transfer Protocol and Hypertext
Transfer Protocol controls can be used to upload and download files, and
the properties, methods and events for both of those controls are very
similar. Once you've become comfortable working with one of the
controls, you'll find it very easy to use the other, related controls.
One of the most common requirements for an application is the ability
to upload and download files, either over the Internet or between
systems on a local intranet. There are two core protocols which are used
for file transfers, the File Transfer Protocol (FTP) and the Hypertext
Transfer Protocol (HTTP). The decision as to which protocol to use
largely depends on whether or not the program must also perform any type
of file management on the server. Because many of the methods in the FTP
and HTTP components are similar, you may wish to use both and simply
give your users an option as to which protocol they prefer to use.
If your program needs to upload files or manage the files on the server,
we recommend that you use FTP. In addition to uploading and downloading
files, FTP can be used to rename or delete files, create directories,
list the files in a directory and perform a variety of other functions.
On the other hand, if you primarily need to just download files, HTTP
can be a better choice. The protocol is simpler and you're less likely
to encounter some of the issues that can arise when using FTP from
behind a firewall.
It is also an option to use FTP to upload and manage files and HTTP to
download files within the same program. The important thing to keep in
mind is that if you want to use HTTP and need to upload files, you must
make sure that the server has been configured for it. Most web servers
do not support the ability to upload files by default; it requires the
administrator to specifically enable that functionality.
If you need to access documents or execute scripts on a web server, you'll want to use the Hypertext Transfer Protocol (HTTP) control. You can use the control to download files and post data to scripts. The control also supports the ability to upload files, either using the PUT command or by using the POST command, which is the same method used when selecting a file to upload using a form. The control can also be used to execute custom commands, allowing your application to take advantage of features like WebDAV, a distributed authoring extension to HTTP.
There are a number of SocketTools components which can be used by an
application that needs to send email messages or retrieve them from a
user's mailbox. The email related controls can be broken into three
groups, those that deal primarily with managing and retrieving messages
for a user, those which are used to send messages and those which can be
used for either purpose.
The two principal protocols used to manage a user's email are the Post
Office Protocol (POP3) and the Internet Message Access Protocol (IMAP).
POP3 is the protocol that the majority of Internet Service Providers
(ISP) use to give their customers access to their messages. It is
primarily designed to enable an application to download the messages
from the mail server and store them on the local system. Once all of the
messages have been downloaded, they are deleted from the server. The
user's mailbox is essentially treated as a temporary storage area.
On the other hand, IMAP is designed to allow the application to manage
the messages on the server. You can create new mailboxes, move messages
between mailboxes and search for messages. Because IMAP can be used to
access specific parts of a message, it's not necessary to download the
entire message if you just want to read a specific part of it. In terms
of the SocketTools controls, it's useful to think of the properties,
methods and events in the IMAP control as a superset of those in the
POP3 control. You'll find that methods used for accessing messages are
very similar, but the IMAP component contains additional methods for
managing mailboxes and performing operations that are specific to that
protocol, such as the ability to search for messages.
To send an email message to someone, the protocol that you'll use is the
Simple Mail Transfer Protocol (SMTP). The SocketTools control supports
the standard implementation of this protocol, along with many of the
extensions that have been added since its original design. Extended SMTP
(ESMTP) provides features such as authentication, delivery status
notification, secure connections using TLS and so on. Another
component that you may use is the Domain Name Services (DNS) control,
which your application can use to determine what servers are responsible
for accepting mail for a particular user.
Common to both sending and receiving email messages is the need to be
able to create and process those messages. An email message has a
specific structure which is defined by a number of standards,
collectively called the Multipurpose Internet Mail Extensions (MIME).
The SocketTools Mail Message control can be used to create messages in
the format, as well as parse existing messages so that you application
can access the specific information that it needs. For example, you can
use this component to attach files to a message as well as extract a
specific file attachment from a message and store it on the local
system.
If you need to establish an interactive terminal session with a server, there are two protocols that you can use. The most common is the Telnet Protocol; however, there is also the Rlogin protocol which is part of the Remote Command control. Either of these protocols are typically used in conjunction with the Terminal Emulation control, which provides ANSI and DEC VT-220 terminal emulation functionality. Used together, the user can login and interact with the server in the same way that they would use a console or character based terminal.
If you need to access newsgroups, the Network News Transfer Protocol will enable you to connect, list, retrieve and post articles. Because news articles have a format that is very similar to email messages, the Mail Message control can be used to parse articles that you've downloaded or create new articles to be posted. If you need to attach a file to the article that you're posting, the File Encoding control can be used to encode the file using the yEnc encoding algorithm, which has become the de facto standard on USENET.