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 7 SP1, Windows Server 2008 R2 and later versions. Earlier versions of the operating system, including Windows 2000, Windows XP and Windows Vista are no longer supported by Microsoft and are not recommended for use with SocketTools.

Developers who are redistributing applications which target Windows 10 or Windows Server 2019 should upgrade to ensure compatibility with the platform and current development tools. Secure connections on Windows XP and Windows Vista has been deprecated because those platforms do not support TLS 1.2 and most services will no longer accept connections from a client using SSL 3.0 or TLS 1.0.

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 7 or Windows 8.1, it is recommended 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 are developing on Windows 10 the Visual Basic 6 runtime is supported on that platform, but the IDE is no longer supported by Microsoft. Visual Studio 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.5

If you are upgrading from version 9.5, 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, secure connections will use TLS 1.2. 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 Server 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.

Upgrading From SocketTools 8.0

If you are upgrading from version 8.0, 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.0 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