SocketTools Components
SocketTools includes .NET classes, ActiveX controls and standard Windows libraries that implement the major Internet application protocols, as well as support for general TCP/IP networking services, encoding and compressing files, processing e-mail messages and ANSI terminal emulation. The following components are included in each of the SocketTools Editions.
Domain Name Service (DNS)
The Domain Name Service (DNS) protocol is what applications use to resolve domain names into Internet addresses, as well as provide other information about a domain, such as the name of the mail servers which are responsible for receiving e-mail for users in that domain. This component enables an application to query one or more nameservers directly, without depending on the configuration of the client system.
File Encoding and Compression
The File Encoding component provides functions for encoding and decoding binary files, typically attachments to e-mail messages. The process of encoding converts the contents of a binary file to printable text. Decoding reverses the process, converting a previously encoded text file back into a binary file. This component supports a number of different encoding methods, including support for the base64, uucode, quoted-printable and yEnc algorithms. It can also be used to compress and expand data in a user-supplied buffer or in a file.
File Transfer Protocol (FTP)
The File Transfer Protocol (FTP) component provides functions for uploading and downloading files from a remote host, as well as a variety of remote file management functions. In addition to file transfers, an application can create, rename and delete files and directories, list files and search for files using wildcards. The component provides both high level functions, such as the ability to transfer multiple files in a single function call, as well as access to lower level remote file I/O functions. The SocketTools Secure Editions also include support for encrypted client sessions using SSL, TLS and SSH.
Hypertext Transfer Protocol (HTTP)
The Hypertext Transfer Protocol (HTTP) component provides an interface for accessing documents and other types of files on a server. In some ways it is similar to the File Transfer Protocol in that it can be used to upload and download files; however, the protocol has expanded to also support remote file management, script execution and distributed authoring over the World Wide Web. The SocketTools Hypertext Transfer Protocol component implements version 0.9, 1.0 and 1.1 of the protocol, including features such as support for proxy servers, persistent connections, user-defined header fields and chunked data. The SocketTools Secure Editions also include support for encrypted client sessions using SSL/TLS.
Internet Control Message Protocol (ICMP)
The Internet Control Message Protocol (ICMP) is commonly used to determine if a remote host is reachable and how packets of data are routed to that system. Users are most familiar with this protocol as it is implemented in the ping and tracert command line utilities. The ping command is used to check if a system is reachable and the amount of time that it takes for a packet of data to make a round trip from the local system, to the remote host and then back again. The tracert command is used to trace the route that a packet of data takes from the local system to the remote host, and can be used to identify potential problems with overall throughput and latency. The component can be used to build in this type of functionality in your own applications, giving you the ability to send and receive ICMP echo datagrams in order to perform your own analysis.
Internet Message Access Protocol (IMAP)
The Internet Message Access Protocol (IMAP) is an application protocol which is used to access a user’s e-mail messages which are stored on a mail server. However, unlike the Post Office Protocol (POP) where messages are downloaded and processed on the local system, the messages on an IMAP server are retained on the server and processed remotely. This is ideal for users who need access to a centralized store of messages or have limited bandwidth. For example, traveling salesmen who have notebook computers or mobile users on a wireless network would be ideal candidates for using IMAP. The SocketTools IMAP component implements the current standard for this protocol, and provides functions to retrieve messages, or just certain parts of a message, create and manage mailboxes, search for specific messages based on certain criteria and so on. The API is designed as a superset of the Post Office Protocol API, so developers who are used to working with the POP3 component will find the IMAP component very easy to integrate into an existing application.
Internet Server
The Internet Server component provides a simplified interface for creating event-driven, multi-threaded server applications using the TCP/IP protocol. Its interface is similar to the general purpose SocketWrench component, however it is designed specifically to make it easier to implement a server application without requiring the lower-level code needed to manage individual client sessions. In addition, the Internet Server component supports secure communications using the Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols. Note that in order to access the secure features in this component, a Secure Edition development license is required.
Multipurpose Internet Mail Extensions (MIME)
The Mail Message component provides an interface for composing and processing e-mail messages and newsgroup articles which are structured according to the Multipurpose Internet Mail Extensions (MIME) standard. Using this component, an application can easily create complex messages which include multiple alternative content types, such as plain text and styled HTML text, file attachments and customized headers. It is not required that the developer understand the complex MIME standard; a single function call can be used to create multipart message, complete with a styled HTML text body and support for international character sets. The Mail Message component can be easily integrated with the other mail related protocol libraries, making it extremely easy to create and process MIME formatted messages.
- Multipurpose Internet Mail Extensions API
- SocketTools.MailMessage .NET Class
- MailMessage ActiveX Control
Network News Transfer Protocol (NNTP)
The Network News Transfer Protocol (NNTP) is used with servers that provide news services. This is similar in functionality to bulletin boards or message boards, where topics are organized hierarchically into groups, called newsgroups. Users can browse and search for messages, called news articles, which have been posted by other users. On many servers, they can also post their own articles which can be read by others. The largest collection of public newsgroups available is called USENET, a world-wide distributed discussion system. In addition, there are a large number of smaller news servers. For example, Microsoft operates a news server which functions as a forum for technical questions and announcements. The SocketTools component provides a comprehensive interface for accessing newsgroups, retrieving articles and posting new articles. In combination with the Mail Message component to process the news articles, SocketTools can be used to integrate newsgroup access with an existing e-mail application, or you can implement your own full-featured newsgroup client.
Post Office Protocol v3 (POP3)
The Post Office Protocol (POP) provides access to a user’s new e-mail messages on a mail server. Functions are provided for listing available messages and then retrieving those messages, storing them either in files or in memory. Once a user’s messages have been downloaded to the local system, they are typically removed from the server. This is the most popular e-mail protocol used by Internet Service Providers (ISPs) and the SocketTools component provides a complete interface for managing a user’s mailbox. This component is typically used in conjunction with the Mail Message component, which is used to process the messages that are retrieved from the server.
Remote Access Services Dialer (RAS)
The Remote Access Services (RAS) component enables an application to connect to an Internet Service Provider (ISP) using a standard Dial-Up Networking connection. Using this component, the application can discover what dial-up devices are available, what dial-up networking entries (known as "connectoids") are available on the local system and allow the program to manage those connections. Existing connections can be monitored, new connections created and a single component can be used to manage multiple dial-up connections if the system has more than one modem. While Windows can be configured to simply autodial a service provider whenever a network connection is needed, this component gives your application complete control over the process of connecting to a service provider, monitoring that connection and then terminating that connection if needed.
Remote Command Protocol (RSH/REXEC)
The Remote Command protocol is used to execute a command on a server and return the output of that command to the client. The SocketTools component provides an interface to this protocol, enabling applications to remotely execute a command and process the output. This is most commonly used with UNIX based servers, although there are implementations of remote command servers for the Windows operating system. The SocketTools component supports both the rcmd and rshell remote execution protocols and provides functions which can be used to search the data stream for specific sequences of characters. This makes it extremely easy to write Windows applications which serve as light-weight client interfaces to commands being executed on a UNIX server or another Windows system. The component can also be used to establish a remote terminal session using the rlogin protocol, which is similar to how the Telnet protocol functions.
Secure Shell Protocol (SSH)
The Secure Shell (SSH) protocol is used to establish a secure connection with a server which provides a virtual terminal session for a user. Its functionality is similar to how character based consoles and serial terminals work, enabling a user to login to the server, execute commands and interact with applications running on the remote host. The SSH component provides an API for establishing the connection and handling the standard I/O functions needed by the program. The component also provides functions that enable a program to easily scan the data stream for specific sequences of characters, making it very simple to write light-weight client interfaces to applications running on the server. Note that this component requires a Secure Edition development license.
Simple Mail Transfer Protocol (SMTP)
The Simple Mail Transfer Protocol (SMTP) enables applications to deliver e-mail messages to one or more recipients. The component provides an API for addressing and delivering messages, and extended features such as user authentication and delivery status notification. Unlike Microsoft’s Messaging API (MAPI) or Collaboration Data Objects (CDO), there is no requirement to have certain third-party e-mail applications installed or specific types of servers installed on the local system. The SocketTools component can be used to deliver mail through a wide variety of systems, from standard UNIX based mail servers to Windows systems running Exchange or Lotus Notes and Domino. Using the SocketTools component, messages can be delivered directly to the recipient, or they can be routed through a relay server, such as an Internet Service Provider’s mail system. The Mail Message component can be integrated with this component in order to provide an extremely simple, yet flexible interface for composing and delivering mail messages.
SocketWrench
The SocketWrench control provides a higher-level interface to the Windows Sockets API, designed to be suitable for programming languages other than C and C++. In addition, the Secure Edition supports secure communications using the Secure Sockets Layer (SSL) and Transport Layer Security (TLS) protocols. Note that in order to access the secure features in SocketWrench, a Secure Edition development license is required.
Telnet Protocol
The Telnet protocol is used to establish a connection with a server which provides a virtual terminal session for a user. Its functionality is similar to how character based consoles and serial terminals work, enabling a user to login to the server, execute commands and interact with applications running on the remote host. The Telnet component provides an API for establishing the connection, negotiating certain options (such as whether characters will be echoed back to the client) and handling the standard I/O functions needed by the program. The component also provides functions that enable a program to easily scan the data stream for specific sequences of characters, making it very simple to write light-weight client interfaces to applications running on the server. This component can be combined with the Terminal Emulation component to provide complete terminal emulation services for a standard ANSI or DEC-VT220 terminal.
Terminal Emulation
The Terminal Emulation component provides a comprehensive interface for emulating an ANSI or DEC-VT220 character terminal, with full support for all standard escape and control sequences, color mapping and other advanced features. It provides both a high level interface for parsing escape sequences and updating a display, as well as lower level primitives for directly managing the virtual display, such as controlling the individual display cells, moving the cursor position and specifying display attributes. This component can be used in conjunction with the Remote Command or Telnet Protocol control to provide terminal emulation services for an application, or it can be used independently. For example, it could also be used to provide emulation services for a program that provides serial modem connections to a server.
Time Protocol
The Time Protocol component provides an interface for synchronizing the local system’s time and date with that of a remote server. The component enables developers to query a server for the current time and then update the system clock if desired.
Whois Protocol
The Whois protocol component provides an interface for requesting information about an Internet domain name. When a domain name is registered, the organization that registers the domain must provide certain contact information along with technical information such as the primary name servers for that domain. The Whois protocol enables an application to query a server which provides that registration information. The SocketTools component provides an API for requesting that information and returning it to the program so that it can be displayed or processed.