SocketTools 11 Upgrade Information  

This section will help you upgrade an application written using a previous version of the SocketTools ActiveX Edition. In most cases, the modifications required will be minimal and may only require a few edits and recompiling the program. However, it is recommended that you review this entire guide so that you understand what changes were made and how those changes can be implemented in your software.

Supported Platforms

SocketTools 11 is supported on Windows 7, Windows Server 2008 R2 and later versions. Earlier versions of the operating system, including Windows XP and Windows Vista are no longer supported by Microsoft and cannot be used with SocketTools. We recommend using the lasted release of either Windows 10 or Windows 11.

Developers who are redistributing applications which target Windows 11 or Windows Server 2022 should upgrade to ensure compatibility with the platform and current development tools. Secure connections require TLS 1.2 or later and most services will no longer accept connections from a client using SSL 3.0 or TLS 1.0.

Development Tools

The SocketTools 11 ActiveX controls may be used with any programming language that supports the Component Object Model (COM) and ActiveX control interface. This includes languages such as Visual Basic 6.0, Visual FoxPro and PowerBuilder. Although the ActiveX controls may be used with Visual Basic .NET and Visual C#, it is recommended you use the SocketTools .NET Edition if you are creating applications for the .NET Framework.

The Visual Basic 6.0 runtime is supported on Windows 11, however the IDE is no longer supported by Microsoft. To use the Visual Basic 6.0 IDE in Windows 11, you will need to run it with elevated privileges. Visual Studio 2022 supports the use of ActiveX controls, although we generally recommend using Visual Studio 2022 and the .NET Edition for development on the current Windows platforms.

Upgrading Projects

If you are upgrading from version 10, applications will be source code compatible with the SocketTools 11 ActiveX controls. In most cases, all you will need to do is install the current version, update the control references in your project and recompile your application. It is important to note that the control file names, class IDs and interfaces have changed and are not binary compatible with previous versions.

If you are upgrading from an earlier version of SocketTools, you should find that most projects which have used SocketTools 8.0 or later will require minimal code changes. If you have used hard-coded values instead of constant names for options, then you should review those values and update them appropriately. Some option values will have changed over the versions as new features have been added. If you are upgrading from a very early version of SocketTools, you may find that there have been changes to method names and parameters which will need to be updated.

The runtime license key has changed for SocketTools 11, which may require you to redefine the value in your application when calling the control's Initialize method. As with previous versions of SocketTools, you can use the License Manager utility to generate a file which contains the runtime key you should use. The version 10 and earlier runtime license keys are not valid for the version 11 controls and an error will be returned if an invalid runtime key is specified.

Your application should not attempt to reference the current version of a control and an earlier version of the control within the same application. When upgrading to version 11, first remove all references to the earlier version of the control, save the project and reload it. Then add the reference to the version 11 control, ensuring that the same object name is used. If you are creating an instance of the control dynamically by specifying its ProgID, such as using the CreateObject function, then it is recommended that you specify the version number as part of the ID. For example, to create an instance of the FTP control, use "SocketTools.FtpClient.11" and not simply "SocketTools.FtpClient". If the major version number is omitted, the latest version of the control will always be loaded.

With SocketTools 11, secure connections will use TLS 1.2 or later. By default, the controls will not support connections to servers which use older, less secure versions of TLS or any version of SSL. They will also no longer use weaker cipher suites that incorporate insecure algorithms, such as RC4 or MD5. For applications that require secure connections, it is recommended you use the current build of Windows 10 or Windows 11 with all security updates applied.

It is possible to force the controls to use earlier versions of TLS for backwards compatibility with older servers. This is done by explicitly setting the SecureProtocol property to specify the protocol version required. However, this is not generally recommended because using an older version of TLS (or any version of SSL) may cause servers to immediately reject the connection attempt.

Most of the networking APIs have an option to force the controls to establish an IPv6 network connection. By default, the controls will still give preference to using IPv4 for backwards compatibility. Note that using options which only establish connections using IPv6 may prevent applications from working correctly on older versions of Windows.

Control File Names

The file names of the ActiveX controls and their IDs have changed with the new version. The following table lists the new values which should be used in your application. For more information, refer to the Redistribution section.

File Name ProgID Description
csdnsx11.ocx SocketTools.DnsClient.11 Domain Name Service Control
csftpx11.ocx SocketTools.FtpClient.11 File Transfer Protocol Control
csftsx11.ocx SocketTools.FtpServer.11 File Transfer Server Control
cshtpx11.ocx SocketTools.HttpClient.11 Hypertext Transfer Protocol Control
cshtsx11.ocx SocketTools.HttpServer.11 Hypertext Transfer Server Control
csicmx11.ocx SocketTools.IcmpClient.11 Internet Control Message Protocol Control
csmapx11.ocx SocketTools.ImapClient.11 Internet Message Access Protocol Control
csmsgx11.ocx SocketTools.MailMessage.11 Mail Message Control
csmtpx11.ocx SocketTools.SmtpClient.11 Simple Mail Transfer Protocol Control
csncdx11.ocx SocketTools.FileEncoder.11 File Encoding Control
csnvtx11.ocx SocketTools.Terminal.11 Terminal Emulation Control
csnwsx11.ocx SocketTools.NntpClient.11 Network News Transfer Protocol Control
cspopx11.ocx SocketTools.PopClient.11 Post Office Protocol Control
csrasx11.ocx SocketTools.Dialer.11 Remote Access Services Dialer Control
csrshx11.ocx SocketTools.RshClient.11 Remote Command Protocol Control
csrssx11.ocx SocketTools.NewsFeed.11 Syndicated News Feed Control
cstimx11.ocx SocketTools.TimeClient.11 Time Protocol Control
cstntx11.ocx SocketTools.TelnetClient.11 Telnet Protocol Control
cstshx11.ocx SocketTools.SshClient.11 Secure Shell Protocol Control
cstxtx11.ocx SocketTools.TextMessage.11 Text Messaging Control
cswebx11.ocx SocketTools.WebStorage.11 Web Storage Control
cswhox11.ocx SocketTools.WhoisClient.11 Whois Protocol Control
cswipx11.ocx SocketTools.WebLocation.11 Web Location Control
cswskx11.ocx SocketTools.SocketWrench.11 Windows Sockets (SocketWrench) Control
cswsvx11.ocx SocketTools.InternetServer.11 Windows Sockets Server Control