SocketTools Release Notes

SocketTools 5.0 Build 5035

  • Corrected a problem in the FTP component where an invalid error code could be set for the current thread if the transfer failed under some circumstances.
    [All SocketTools Editions]
  • Improved memory management for the FTP and HTTP components for large file transfers, making fewer reallocations and managing the session heap allocated for the transfer more efficiently.
    [All SocketTools Editions]
  • Corrected a problem in the MIME component which could cause multi-part messages with HTML formatted text to become corrupted. This could result in the message structure being malformed or cause the application to crash with an access violation.
    [All SocketTools Editions]
  • Minor corrections to the documentation were made.
    [All SocketTools Editions]

SocketTools 5.0 Build 5030

  • Updated with support for Visual Studio 2008 and the .NET Framework 3.5, including assemblies and examples that target that development platform.
    [SocketTools .NET Editions]
  • Corrected a problem with the Domain Name Service component that could prevent mail exchange domains from being returned in the correct priority order.
    [All SocketTools Editions]
  • Corrected a problem with the File Transfer Protocol component that could result in unexpected errors when attempting to parse the directory listings returned by certain UNIX based servers.
    [All SocketTools Editions]
  • Improved the performance for very large file transfers under some circumstances. The internal algorithm used to recalculate the size of the dynamic buffer used by the transfer algorithm is more sensitive to higher latency network conditions.
    [All SocketTools Editions]
  • Corrected a problem in the Hypertext Transfer Protocol component that could potentially result in incorrect form data being submitted to a server when using the virtual form methods. This would typically occur when using these methods to upload XML data using the POST method.
    [All SocketTools Editions]
  • Corrected a problem with the Internet Control Message Protocol component that could cause the accumulated statistics for a remote host to be cleared.
    [All SocketTools Editions]
  • Corrected a problem with the MailMessage component where a message would not be parsed correctly if multi-line header fields were folded in specific ways. Specifically this could cause a multi-part message that contained file attachments to be considered a single-part message.
    [All SocketTools Editions]
  • Corrected a problem with the Internet Message Access Protocol component where multiple untagged responses from the server could result in a synchronization problem. Under rare circumstances this could cause a client operation to fail unexpectedly, indicating that an invalid result code was returned by the server.
    [All SocketTools Editions]
  • Corrected a problem with the Simple Mail Transfer Protocol component that could result in an error with some servers indicating that the client session could not be authenticated, even though the authentication was successful.
    [All SocketTools Editions]
  • The Simple Mail Transfer Protocol component is now more tolerant of certain non-standard responses returned by the mail server, rather than requiring result codes that exactly match the values specified in the protocol standard.
    [All SocketTools Editions]
  • Improved the performance of the SocketWrench ReadStream and WriteStream methods under certain high-latency conditions when reading or writing large blocks of data.
    [All SocketTools Editions]
  • Updated the Developers Guide and Technical Reference and made minor corrections to the overall documentation.

SocketTools 5.0 Build 5020

  • Modified all networking classes to implement the IDisposable interface and added the Dispose method to provide the developer with better control over the lifetime of the class instance. The Dispose method is similar to the Uninitialize method, however once the Dispose method has been called, that instance of the class cannot be re-initialized and the application should never reference that instance again.
    [SocketTools .NET Editions]
  • Modified the default threading model for all networking classes to modelFreeThread, which allows class methods to be called by any thread in the process, rather than just the thread which created that instance of the class. It is important to note that access to the class instance must be synchronized across multiple threads. In particular, you want to make sure that multiple threads do not attempt to issue commands or read and write data using the same instance of the class at the same time. Applications which implement a single-threaded design can set the ThreadModel property to modelSingleThread.
    [SocketTools .NET Editions]
  • Corrected a problem where explicitly setting the ThreadModel property to modelFreeThread could cause methods in the DnsClient and IcmpClient classes to fail unexpectedly.
    [SocketTools .NET Editions]
  • Corrected a problem in all of the networking classes where the ResultCode and ResultString could return incorrect values under some circumstances.
    [SocketTools .NET Editions, SocketTools Visual Editions]
  • Corrected a problem with the InternetDialer class and Dialer ActiveX control where the user name, password and domain may not be stored when the SaveEntry method is called.
    [SocketTools .NET Editions, SocketTools Visual Editions]
  • Corrected a problem with the InternetDialer class and Dialer ActiveX control where the CreateEntry and EditEntry methods were not displaying the appropriate dialogs on the Windows Vista platform.
    [SocketTools .NET Editions, SocketTools Visual Editions]
  • Corrected a problem with the MIME library and components where an email address would not be parsed correctly if it contained a comment that included an atsign.
    [All SocketTools Editions, Catalyst Internet Mail Control]
  • Corrected a problem with the MIME library and components where the message may not be exported correctly if the encoding type was set to base64. The class will now automatically re-encode any message text that is encoded using base64. Note that encoding message text using the base64 algorithm is generally not recommended because it can cause some anti-spam filters to flag the message as spam.
    [All SocketTools Editions, Catalyst Internet Mail Control]
  • Added an option to the HTTP library and components which specifies that an error code should not be returned if the server fails the request. Instead, the error data provided by the server is returned to the caller. This option should not be used in combination with automatic redirection. The option is specified as HTTP_OPTION_ERRORDATA in the Library Edition, httpOptionErrorData in the ActiveX control and HttpOptions.optionErrorData in the .NET class.
    [All SocketTools Editions]
  • Corrected a problem with the License Manager utility that would prevent the selected component version from being displayed correctly under some circumstances.
    [All Products]

Version 5.0 Build 5015

  • Corrected a problem with the Peek method in the SocketWrench component where it did not function similarly to the Read method and could yield unexpected results because it ignored the value of the Blocking property. The Peek method will now cause the current thread to block if the Blocking property is set to true.
    [SocketTools .NET Editions, Scripting Editions, Visual Editions]
  • Corrected a problem with the SendMessage method in the SMTP component which did not permit the use of a null sender. The sender address "<>" can now be used to identify a null sender in the SMTP envelope when a message is submitted for delivery. Note that not all servers may accept a null sender, rejecting the submission unless a valid sender address is specified.
    [All SocketTools Editions]
  • Corrected a problem with the HTTP component where a malformed resource path could be created if the connection was established through a proxy server. This could result in an error that incorrectly indicated a resource did not exist, even when the resource did actually exist on the server.
    [SocketTools .NET Editions, Scripting Editions, Visual Editions]
  • Modified the FTP library and components to support active mode file transfers over secure connections. In previous versions, the connection would always be forced into passive mode for secure connections.
    [All SocketTools Editions]
  • Modified the FTP library and components to automatically select an explicit SSL session if the Secure property is set to true and the connection is established on the standard service port number (21).
    [All SocketTools Editions]
  • Modified the FTP library and components to permit a maximum timeout value of greater than 600 seconds. The maximum timeout value is now 86,400 seconds (24 hours).
    [All SocketTools Editions]
  • Modified all secure networking classes so that establishing a connection using the secure port number for that service will always default to an implicit SSL session, eliminating the need to explicitly specify additional options in most cases.
    [All SocketTools Editions]
  • Updated the Developer's Guide and Technical Reference documentation. Corrected an issue with the installation which did not include a shortcut to the PDF version of the documentation.
    [All SocketTools Editions]

Version 5.0 Build 5010

  • Updated the standard header files used with C++ and corrected a problem where the installer may not copy or replace certain header files. Note that because SocketTools uses the Windows Sockets 2.2 API, you cannot include the Winsock.h header file in your source. You must include the Winsock2.h header file instead.
    [SocketTools Library Editions]
  • Corrected a problem where setting the Encoding property to httpEncodingNone in the HTTP component would not change the default encoding type when posting data to a script and could cause data to be encoded incorrectly.
    [SocketTools Scripting Editions, Visual Editions]
  • Corrected a problem where certain security constants were defined incorrectly in the interface definition for the components.
    [SocketTools Secure Scripting Edition, Secure Visual Edition]
  • Updated the support library which implements the trace logging facility, reducing some extraneous detail being included in logfile under certain conditions. This would typically manifest as a single Windows Sockets API call being logged multiple times.
    [All SocketTools Editions]
  • Updated the Developer's Guide and Technical Reference documentation with current build information and minor corrections.
    [All SocketTools Editions]

Version 5.0 Build 5000

  • Updated for full compatibility with the Windows Vista platform, supporting the new security model and TCP/IP stack.
    [All SocketTools Editions]
  • Core networking code updated to use Windows Sockets 2.2 API and removed all dependencies on Windows 95/98 TCP/IP stack.
    [All SocketTools Editions]
  • Redesigned the memory management code used to allocate buffers and private data structures for client sessions, improving performance and reducing overhead when multiple sessions are created in a multithreaded application.
    [All  SocketTools Editions]
  • Added support for multiple threading models on a per-session basis, enabling applications to create "free threaded" client sessions that may be accessed by any thread at any time.
    [SocketTools .NET Editions, Library Editions]
  • Added support for AES (Advanced Encryption Standard) encryption for secure SSL/TLS connections on Windows Vista.
    [All SocketTools Secure Editions]
  • Improved support for firewalls and proxy servers, and improved the auto-detection code used to automatically configure proxy settings.
    [All SocketTools Editions]
  • Added assemblies that specifically target the .NET 2.0 Framework, in addition to the .NET 1.1 assemblies already included.
    [SocketTools .NET Editions]
  • The ThreadModel property was added to all networking classes to enable the application to specify the threading model which should be used.
    [SocketTools .NET Editions]
  • Added the FtpGetActivePorts and FtpSetActivePorts functions to enable the developer to specify the active port range to be used when transferring files.
    [SocketTools Library Editions]
  • Added the ActivePort property array to enable the developer to specify the active port range to be used when transferring files.
    [SocketTools Visual Editions, Scripting Editions]
  • Added the ActivePorts property to enable the developer to specify the active port range to be used when transferring files.
    [SocketTools .NET Editions]
  • Modified the ChannelMode property in the FTP class to use a structure which specifies the secure channel modes.
    [SocketTools .NET Edition]
  • Modified the MailMessage component to automatically decode message text which is encoded using the base64 algorithm.
    [All SocketTools Editions]
  • Corrected a problem in the MailMessage component where multiple attachments in a message may not be detected correctly.
    [All SocketTools Editions]
  • Corrected a problem in the ImapClient component that could prevent new messages from being downloaded correctly.
    [All SocketTools Editions]
  • Corrected the AddRecipient method in the SmtpClient class so that it returns the correct value if the recipient was successfully added.
    [SocketTools .NET Editions]
  • Corrected a problem where the HttpGetSecurityInformation function could fail to release a security context and cause a memory leak when called.
    [SocketTools Library Editions]
  • Corrected a problem where the FtpGetFile function could cause a memory leak if the local file could not be created.
    [SocketTools Library Editions]
  • Corrected a problem where multiple OnAccept events could be generated when a client establishes a connection with the server.
    [SocketTools Visual Editions]
  • Corrected a problem in the SocketTools header files if the latest version of the Windows SDK was installed with Visual Studio 2005.
    [SocketTools Library Editions]
  • Corrected a problem with the HTTP component where automatic proxy detection fails or may not select the correct proxy configuration.
    [All SocketTools Editions]
  • Corrected a problem where the SSL/TLS handshake may not complete correctly under high latency situations, and would not return the correct error code if it failed.
    [All SocketTools Secure Editions]
  • Corrected a problem with the DNS component which could prevent it from searching all of the specified nameservers in an attempt to resolve a hostname.
    [All SocketTools Editions]
  • Corrected a problem with the DNS component where multiple MX (mail exchange) records may not be returned correctly and only a single record is returned.
    [All SocketTools Editions]
  • Corrected a problem with the SMTP component where delivery status notification may not be handled properly if multiple recipients were specified.
    [All SocketTools Editions]
  • Corrected a problem with the TELNET component that could result in invalid control sequences being sent during the initial option negotiation.
    [All SocketTools Editions]
  • Corrected a problem with the Terminal control where mouse events may not be generated correctly under some circumstances.
    [SocketTools .NET Editions, Visual Editions]
  • Corrected a problem with the InternetDialer class which could cause an unhandled exception to be generated when a phonebook entry was loaded.
    [SocketTools .NET Editions]
  • Modified the HttpCommand function to attempt to automatically correct invalid resource paths that may be specified by the caller.
    [SocketTools Library Editions]
  • Modified the connection function/method to automatically attempt to a direct connection to the server if the default proxy could not be accessed for some reason. This is designed to primarily include reliability where the client system may have an invalid or incomplete proxy server configuration.
    [All SocketTools Editions]
  • The FileStatus method in the FTP ActiveX control has been deprecated and should no longer be used and the GetFileStatus method should be used instead. For backwards compatibility, the FileStatus method was retained as a hidden method which may be used with existing applications.
    [SocketTools Visual Editions]
  • The GetFile and PutFile methods in the FTP and HTTP components overloaded to support a single argument, the name of the local file. The remote file or resource name is determined automatically, if possible.
    [SocketTools .NET Editions, Visual Editions]
  • The FtpGetPriority and FtpSetPriority functions were added to support file transfer priorities, where the application can specify the the system resources and bandwidth allocated for the transfer.
    [SocketTools Library Editions]
  • The HttpGetPriority and HttpSetPriority functions were added to support file transfer priorities, where the application can specify the the system resources and bandwidth allocated for the transfer.
    [SocketTools Library Editions]
  • The Priority property was added to the FTP and HTTP components, enabling the application to specify the system resources and bandwidth allocated for file transfers.
    [SocketTools .NET Editions, Scripting Editions, Visual Editions]
  • The InetPeek function was added to the SocketWrench library to enable an application to read the data available in the socket receive buffer without removing that data from the buffer.
    [SocketTools Library Editions]
  • The Peek method was added to the SocketWrench component to enable an application to read the data available in the socket receive buffer without removing that data from the buffer.
    [SocketTools .NET Editions, Scripting Editions, Visual Editions]
  • The ReadEx and WriteEx methods in the SocketWrench ActiveX control has been deprecated and should no longer be used. The Read and Write methods have been extended to support additional arguments. For backwards compatibility, the ReadEx and WriteEx methods were retained as hidden methods which may be used with existing applications.
    [SocketTools Visual Editions]
  • The Connect method in all networking components was modified to support the use of a URL as the hostname argument. This will automatically update the value of the URL property when the connection is established.
    [SocketTools .NET Editions, Scripting Editions, Visual Editions]
  • The GetFile and PutFile methods in the FTP and HTTP components will automatically establish a connection if the remote file name is a complete URL and no connection already exists.
    [SocketTools .NET Editions, Scripting Editions, Visual Editions]

SocketTools Edition

SocketTools Links

Product Wizard
Decide which SocketTools Edition best meets your needs.


SocketTools 5.0
Read about what is new in the latest version of SocketTools.


SocketTools Overview
An overview of the SocketTools editions, features and benefits.


SocketTools Features
Additional information about the product features.


Design Concepts
Design concepts for the SocketTools product suite.


Frequently Asked Questions
Answers to the most common questions about SocketTools.


Release Notes
Release notes for the current version of SocketTools.


License Agreement
The developer license agreement for this product.