SocketTools 10 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 10 is supported on Windows XP SP3 and later versions of Windows, including Windows 10 and Windows Server 2019. Earlier versions of the operating system, including Windows 95, Windows 98, Windows Me, Windows NT 4.0 and Windows 2000 are no longer supported by Microsoft and are not compatible with SocketTools.

Developers who are redistributing applications which target Windows 10 or Windows Server should upgrade to ensure compatibility with the platform and current development tools. Support for secure connections on Windows XP and Windows Vista should be considered deprecated because those platforms do not support TLS 1.2 and most services will no longer accept connections from a client using TLS 1.0. The minimum recommended version of Windows is Windows 7 SP1.

Development Tools

The SocketTools 10 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 strongly recommended that you use the SocketTools .NET Edition if you are creating applications for the .NET Framework.

If you are developing on Windows Vista, Microsoft only supports Visual Studio 2005 or later versions. If you are developing on Windows 7 or Windows 8.1, it is recommended that you use Visual Studio 2010 or a later version. Earlier versions of Visual Studio may require that you use those development tools with elevated privileges. If you cannot upgrade to the current version of Visual Studio, it's recommended that you continue to develop on the Windows XP platform using a virtual machine.

If you are developing on Windows 10, the Visual Basic 6 runtime is supported on Windows 10, but the IDE is no longer supported by Microsoft. Visual Studio 2019 supports the use of ActiveX controls, although we generally recommend using Visual Studio 2019 and the .NET Edition for development on the current Windows platforms.

Upgrading From SocketTools 9

If you are upgrading from SocketTools 9, applications will be source code compatible with the SocketTools 10 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.

The runtime license key has changed for SocketTools 10, 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 9.0 and earlier runtime license keys are not valid for the version 10 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 10, first remove all references to the earlier version of the control, save the project and reload it. Then add the reference to the version 10 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.10" and not simply "SocketTools.FtpClient". If the major version number is omitted, the latest version of the control will always be loaded.

With SocketTools 10, all secure connections using TLS (Transport Layer Security) will now only use TLS version 1.2. By default, the controls will not support connections to servers that 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, like RC4 or MD5. The only exception to this is when the application is running on Windows XP, Windows Vista, Windows Server 2003 or Windows Server 2008, in which case the controls will revert to using TLS 1.0 because those platforms do not support the current version of TLS. For applications that require secure connections, it is recommended that you upgrade to the current version of Windows, with all security updates applied.

Future support for TLS 1.3 has been added to SocketTools 10, however Microsoft has not officially announced support for TLS 1.3 in Windows 10 or Windows Server 2019. It is unlikely that Microsoft will support TLS 1.3 on Windows 7 or Windows 8.1 or earlier versions of Windows Server. Until Microsoft announces support for TLS 1.3, your applications should continue to use TLS 1.2 as the default for secure connections.

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.

Upgrading From SocketTools 8

If you are upgrading from SocketTools 8, most applications will be source code compatible and not require significant changes to existing code. The control file names have changed, as have their class IDs and interfaces. This means that the new controls are not binary compatible and are not drop-in replacements for earlier versions of the control.

The runtime license key has changed for SocketTools 10, which will require you to define the new key 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 8.0 and earlier runtime license keys are not valid for the version 10 controls and an error will be returned if an invalid runtime key is specified.

Applications which continue to use SocketTools 8 and earlier versions can be installed side-by-side with the version 10 controls. It is not recommended that you attempt to use different versions of the same control within the same application.

SocketTools 8 and earlier versions established secure connections using versions of TLS which are now considered deprecated. Most services today will reject connection attempts from clients who request TLS 1.0 or SSL 3.0. SocketTools 10 uses TLS 1.2 by default for all secure connections, however some older servers which have not been updated may reject the connection attempt. It is possible to force SocketTools 10 to use an earlier version of TLS for backwards compatibility by explicitly setting the SecureProtocol property to specify the protocol version required.

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
csdnsx10.ocx SocketTools.DnsClient.10 Domain Name Service Control
csftpx10.ocx SocketTools.FtpClient.10 File Transfer Protocol Control
csftsx10.ocx SocketTools.FtpServer.10 File Transfer Server Control
cshtpx10.ocx SocketTools.HttpClient.10 Hypertext Transfer Protocol Control
cshtsx10.ocx SocketTools.HttpServer.10 Hypertext Transfer Server Control
csicmx10.ocx SocketTools.IcmpClient.10 Internet Control Message Protocol Control
csmapx10.ocx SocketTools.ImapClient.10 Internet Message Access Protocol Control
csmsgx10.ocx SocketTools.MailMessage.10 Mail Message Control
csmtpx10.ocx SocketTools.SmtpClient.10 Simple Mail Transfer Protocol Control
csncdx10.ocx SocketTools.FileEncoder.10 File Encoding Control
csnvtx10.ocx SocketTools.Terminal.10 Terminal Emulation Control
csnwsx10.ocx SocketTools.NntpClient.10 Network News Transfer Protocol Control
cspopx10.ocx SocketTools.PopClient.10 Post Office Protocol Control
csrasx10.ocx SocketTools.Dialer.10 Remote Access Services Dialer Control
csrshx10.ocx SocketTools.RshClient.10 Remote Command Protocol Control
csrssx10.ocx SocketTools.NewsFeed.10 Syndicated News Feed Control
cstimx10.ocx SocketTools.TimeClient.10 Time Protocol Control
cstntx10.ocx SocketTools.TelnetClient.10 Telnet Protocol Control
cstshx10.ocx SocketTools.SshClient.10 Secure Shell Protocol Control
cstxtx10.ocx SocketTools.TextMessage.10 Text Messaging Control
cswebx10.ocx SocketTools.WebStorage.10 Web Storage Control
cswhox10.ocx SocketTools.WhoisClient.10 Whois Protocol Control
cswipx10.ocx SocketTools.WebLocation.10 Web Location Control
cswskx10.ocx SocketTools.SocketWrench.10 Windows Sockets (SocketWrench) Control
cswsvx10.ocx SocketTools.InternetServer.10 Windows Sockets Server Control