Town Target Tech. Ltd.

30-day Eval
Order
The SocketTools Library Edition consists of 16-bit and 32-bit dynamic link libraries (DLLs), suitable for use with virtually any Windows development environment or scripting tool. A total of nineteen libraries provide client interfaces for application protocols such as the File Transfer Protocol, Simple Mail Transfer Protocol and Telnet protocol. The application program interface for the Library Edition is implemented with a simple elegance that makes it easy to use with any language, not just C or C++.

All of the libraries share many common attributes. The network libraries support both synchronous (blocking) and asynchronous modes of operation. All of the libraries are thread-safe and can be used in multithreaded applications. With full support for both 16-bit and 32-bit Windows platforms, illustrative samples and comprehensive online help, the Library Edition offers the functionality, features and performance needed to build professional applications for the Internet and intranet. The controls are completely royalty free and include a 30-day money-back guarantee.

The following is a list of the development components that are distributed with SocketTools Library Edition. Each DLL is delivered as 16-bit and 32-bit component. This means that any Windows development environment that support DLL access can use SocketTools Library Edition.

 


 

SocketTools Dynamic-Link Libraries:
Audio Player Network News Transfer Protocol (NNTP)
Domain Name Server (DNS) Post Office Protocol (POP3)
File Encoding and Decoding Remote Command Execution (RLIB)
File Transfer Protocol (FTP) Simple Mail Transfer Protocol (SMTP)
Finger Protocol SocketWrench (Windows Sockets)
Gopher Protocol Telnet Protocol
Hypertext Transfer Protocol (HTTP) Terminal Emulation
Image Viewer Time Protocol
Internet Control Message Protocol (Ping) Whois Protocol
Mail Message (MIME)

 


 

Audio Player Library
The Audio Player DLL enables the playing of audio files on an appropriately equipped system. In addition to the standard Windows WAVE and MIDI formats, the library can also play back audio files stored in AIFF, AU and VOC formats.
Domain Name Server (DNS) Library
This client library allows the developer to query a domain name server to determine the IP address or hostname of a remote system without requiring that the local host be configured to use DNS. It also does not require an actual connection to the system you are inquiring about and, as such, does not actually determine if the system is accessible.
File Encoding and Decoding Library
The file encoding library 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 7-bit ASCII text. Decoding reverses the process, converting a previously encoded text file back into a binary file.

The file encoding and decoding library now provides functions for base64 encoding individual strings, and includes file compression and decompression options.

File Transfer Protocol (FTP) Library
This DLL allows the developer to easily establish connections with remote FTP servers to send or retrieve files. The programmer need only open a connection with the server, specify the local and remote filenames for transfer and close the connection when completed. All details of the application protocol, such as user authentication, binary versus text data transfer, "passive mode" transfers and error detection are handled by the library. It also allows the user to retrieve listings of remote files and directories, create, remove and change directories and so on. Both blocking and non-blocking file transfers are supported by the library. This DLL would be useful for downloading large amounts of data, writing programs that periodically update an FTP archive with new software, checking for new files added to an archive and automatically downloading them, providing remote "file manager" services and so on.

The FTP library has several significant enhancements which make it even easier to use, and incorporates a work-around for a serious flaw in the Microsoft IIS software that would leave files locked after a file transfer. Some of these new features are:

  • Automatic directory parsing. No longer do you have to parse the directory output from an FTP server. The library now recognizes the three major directory formats (Windows, UNIX and VMS) and automatically parses the listing for you. In addition, the library also supports an extension to the STAT command which returns information about a single file (including the date, size, permissions and file owner) without incurring the overhead of a complete directory list.
  • Proxy server support. The library now supports four specific types of proxy servers (including the popular Gauntlet and InterLock servers) as well as a user-defined proxy type that can be used to connect with virtually any kind of FTP server.
  • Multiple file retrievals. You can now specify wildcards to transfer multiple files at one time between the local system and remote server.
Finger Protocol Library
The Finger client DLL enables the application to request information from a finger server about a specific user. The information that is typically returned is that date and time of the user's last login to that server, and if any outstanding mail messages are waiting. The actual information and format of that information depends on the server being queried.
Gopher Protocol Library
The Gopher client DLL enables the application to search a Gopher server for a specific document or resource and return that information to the client. The Gopher protocol pre-dates the Hypertext Transfer Protocol (HTTP) that is used with the World Wide Web and is similar in a number of ways. Resources returned by the Gopher server may be text files, as well as binary executables, image files and encoded file archives.
Hypertext Transfer Protocol Library
The Hypertext Transfer Protocol (HTTP) is a lightweight, stateless application protocol that is used to access resources on web servers, as well as send data to those servers for processing. The library provides direct, low-level access to the server and the commands that are used to retrieve resources (i.e.: documents, images, etc.). The library also provides a simple interface for downloading resources to the local host, similar to how the FTP library can be used to download files.
Image Viewer Library
This library is a caching image viewer capable of displaying GIF, JPEG, PCX, XBM and BMP images. In addition to those image formats listed, the DLL is capable of displaying additional types specified in an INI configuration file. Other image libraries can be "plugged in" to the viewer (up to 256 image types are supported by the viewer). Since the viewer is used by the Web DLL to display inline graphics, any additional image types can also by displayed by the Web viewer as well.
Internet Control Message Protocol (Ping) Library
This DLL component allows developers to determine if a remote host is "up" on the network by sending a special kind of packet to it. If the remote host is up, it will reply to the packet, otherwise it won't (and it can be assumed that the system is unavailable for some reason). It's called "ping" because it's analogous to one submarine pinging the water to see if it can find another submarine.
Mail Message (MIME) Library
The mail message library enables the developer to easily manage mail messages. It can be used to create new messages as well as parse an existing message. The DLL can be used with simple RFC 822 compliant messages, as well as RFC 1521 MIME compliant messages with multipart attachments.

The Mail Message (MIME) library has been enhanced to support additional multipart message types, and is more tolerant of those messages created by mail clients that do not conform to the standards outlined in RFC 2045. Some additional features are:

  • Clipboard support. The library can now read messages from the clipboard and store messages to the clipboard. When used in conjunction with the POP3 and SMTP libraries, it is now both easier and faster to load and parse messages.
  • Attaching mail messages. The library now supports the message/rfc822 content type and inline content disposition which is used to attach one mail message to another.
  • Support for message digests. You can request that the library generate a unique message digest, using the MD5 hashing algorithm described in RFC 1321. The library also supports the optional Content-MD5 header field.
Network News Transfer Protocol (NNTP) Library
The NNTP DLL is able to establish a connection to a newsgroup server, retrieve and search newsgroup messages and to also post messages if the server allows it. The NNTP's API allow for flexible integration into an application that would benefit from newsgroup messages.

The NNTP library now supports saving and posting messages from the clipboard, and can be used in combination with the enhancements to the MIME library listed above.

Post Office Protocol (POP3) Library
The POP3 DLL handles the scanning of new messages and retrieving of them from the remote host to the local system, while also providing the ability to delete them. Applications would include those that want integrated email functionality, background programs that alert the user to incoming mail, and so on. This library may be used in combination with the SMTP DLL to provide an application with Internet mail capability. Attachments can be decoded using a DLL that is included with SocketTools Library Edition that supports MIME base 64 and UUENCODE formats.

The POP3 library has been updated to support additional authentication types, the ability to retrieve a message and send it directly to a file or the clipboard, and support for several POP3 extensions. Some of the new features are:

  • Clipboard support. The ability to retrieve a message and store that message in a file or copy it to the clipboard. This can be used in conjunction with the MIME library, enabling a message to be easily retrieved and parsed with a minimum of code. An event is fired as the message is retrieved from the server, allowing the application to provide feedback to the user.
  • APOP authentication. If supported by the server, the client can now use the APOP authentication method that eliminates the need to send cleartext passwords over the network.
  • Change passwords. The library now supports the ability to change the account password for the specified user if the mail server supports the poppass protocol.
  • Retrieve specific message headers. If the mail server supports the XLST extension, the library can now return the values of specific header fields (such as Subject, From and Date) without requiring that the client retrieve the entire message header.
  • Send mail messages. The library can now also be used to send e-mail messages if the server supports the XMIT extension.This enables the client to send a formatted message directly through the POP3 server, without requiring a connection to an SMTP server.
Remote Command Execution (RLIB) Library
This is a library that can be used to execute commands on a remote UNIX host system. The DLL handles the issues of authentication; all that is required is for the developer to specify the remote system, a user name and the command that is to be executed. This DLL is provided for those developers who need to have remote control of a UNIX server on their network. SocketTools Library Edition also includes an rlogin library that also establishes remote Unix connections with authentication.
Simple Mail Transfer Protocol (SMTP) Library
By specifying a remote host and source for the message, the SMTP component handles the delivery of a mail message to a remote system. This DLL may be used in combination with the POP3 library to provide an application with Internet mail capability. Attachments can be encoded using a DLL that is included with SocketTools Library Edition that supports MIME base 64 and UUENCODE formats.

The SMTP library now supports extended options (ESMTP) and delivering messages directly from a file or from the clipboard, integrating it with the MIME library. Some of the new features are:

  • Clipboard support. Messages can be read directly from the clipboard and sent to an SMTP server. This allows the library to be easily combined with the MIME library, and eliminates the need to create temporary files for message composition.
  • Simplified message delivery. A new function called SmtpSendMessage provides a simplified interface for submitting a message. The message, either in a text file or stored in the clipboard, can be sent to directly the mail server. Another function called SmtpAppendMessage allows the contents of a file or the clipboard to be appended to a message that is already being composed. An event is triggered as the message is being delivered, allowing the application to provide feedback to the user.
  • Delivery status notification. This option, also known as return receipt, tells the server to mail notification back to the sender when the message has been delivered, or when an error has occurred.
  • Sender authentication. This enables the client to authenticate itself when it submits a message to a server that supports the AUTH option.
  • Message sizing. When sending messages, the client can now use the SIZE option if supported by the server. This is used to indicate to the server the size of the message, which allows the server to accept or reject the message based on it's size before the client begins submission.
  • Immediate delivery. If supported, the library can now use the SESSION option to request that a message be delivered immediately, rather than being queued by the mail server.
SocketWrench Library
The SocketWrench library provides a higher-level interface to the Windows Sockets library, designed to be suitable for programming languages other than C and C++. If needed, functions calls can be intermixed between the SocketWrench and Windows Sockets libraries.
Telnet Protocol Library
The Telnet DLL provides the ability to connect to a remote host and login as a user would on a "dumb" terminal or using a standard serial terminal emulator. The library provides the fundamental functionality of establishing a connection, sending and receiving data from the host, and closing the connection when the session is finished. This component can be used in combination with the terminal emulation DLL to provide ANSI emulation capability.
Terminal Emulation Library
A separate DLL is included that provides basic VT100/ANSI terminal emulation. This library allows the programmer to automate "remote" jobs on a system, or to provide an emulation facility for their application which may be running on a remote host. All basic ANSI functionality is provided, as well as the ability to map special (function) keys to any sequence of characters.

The terminal emulation library has been enhanced with improved ANSI emulation, as well as support for VT100 and VT220 escape sequences and keymaps. Some of the new features are:

  • Additional emulations. In addition to the ANSI emulation, the library now supports VT100 and VT220 escape sequences, as well as some VT320 sequences. A number of SCO console specific escape sequences are also supported.
  • Graphics mode. The emulator now supports alternate character sets, including the graphics (line drawing) and UK character sets.
  • Color support. The escape sequences for color are now supported. Available in the ANSI and VT220 emulations, this allows foreground and background colors to be set independent of the default colors. In ANSI emulation, color escape sequences for the SCO color console are also recognized.
  • Default keymaps and application mode. In addition to the ANSI keymap which defines the escape sequences for the function and cursor keys, two additional keymaps have been defined. The VT100 keymap provides default sequences for F1-F4, the cursor keys and the keypad. The VT220 emulation provides sequences for F1-F12, the cursor keys and the keypad. Both VT emulations now support both keypad and cursor key application mode.
Time Protocol Library
The Time client library enables the application to request the current time and date from a remote server. The values returned may either be expressed in local time (using the local host's timezone) or system time (also known as Universal Coordinated Time or Grenwich Mean Time). The DLL may also be used to synchronize the local host's system clock with the remote server.
Whois Protocol Library
The Whois client DLL enables the application to request information from a server about a specific domain or user. This library would be most commonly used to query the Whois server at rs.internic.net to obtain information about a specific Internet domain name or an administrative contact at that domain.


Copyright © 1996-1999 Town Target Technology Limited, Catalyst Development Corporation. All Rights Reserved.
Last Updated: Monday, October 18, 1999