SocketTools 9.5 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 9.5 is supported on Windows XP SP3 and later versions of Windows, including Windows 10 and Windows Server 2016. 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 7 or later versions of the operating system should upgrade to the current version of the SocketTools ActiveX Edition to ensure compatibility with the platform. It is also recommended that you review the Microsoft Developers Network website and familiarize yourself with how the User Account Control (UAC) system works.

Development Tools

The SocketTools 9.5 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 the Windows 7 or Windows 8 desktop platform, 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 are using Visual Studio 6.0 or Visual Studio .NET 2003 and cannot upgrade to the current version of Visual Studio, Microsoft recommends that you continue to develop on the Windows XP platform.

Upgrading From Version 9.0

If you are upgrading from version 9.0 or a later version, applications will be source and binary compatible with the SocketTools 9.5 ActiveX controls. In most cases, all you will need to do is install the current version and recompile your application. Your development and runtime licenses have not changed, and the same runtime license key can be used with the version 9.5 controls. However, it is important to consider that there have been several important security changes made to the controls since the original release of version 9.0.

With SocketTools 9.5, 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.

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 Version 8.0

If you are upgrading from SocketTools 8.0, most applications will be source code compatible and not require significant changes to existing code. Note that 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. It is recommended that you review the release notes for more information about the changes in the current version.

An 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 9.5, first remove all references to the earlier version of the control, save the project and reload it. Then add the reference to the 9.5 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. In other words, to create an instance of the FTP control, use "SocketTools.FtpClient.9" and not simply "SocketTools.FtpClient". If the major version number is omitted, the latest version of the control will always be loaded.

The runtime license key has also changed for SocketTools 9.5, 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 9.5 controls and an error will be returned if an invalid runtime key is specified.

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.

File Name ProgID Description
csdnsax9.ocx SocketTools.DnsClient.9 Domain Name Service Control
csfgrax9.ocx SocketTools.FingerClient.9 Finger Protocol Control
csftpax9.ocx SocketTools.FtpClient.9 File Transfer Protocol Control
csftsax9.ocx SocketTools.FtpServer.9 File Transfer Server Control
csgprax9.ocx SocketTools.GopherClient.9 Gopher Protocol Control
cshtpax9.ocx SocketTools.HttpClient.9 Hypertext Transfer Protocol Control
cshtsax9.ocx SocketTools.HttpServer.9 Hypertext Transfer Server Control
csicmax9.ocx SocketTools.IcmpClient.9 Internet Control Message Protocol Control
csmapax9.ocx SocketTools.ImapClient.9 Internet Message Access Protocol Control
csmsgax9.ocx SocketTools.MailMessage.9 Mail Message Control
csmtpax9.ocx SocketTools.SmtpClient.9 Simple Mail Transfer Protocol Control
csncdax9.ocx SocketTools.FileEncoder.9 File Encoding Control
csnvtax9.ocx SocketTools.Terminal.9 Terminal Emulation Control
csnwsax9.ocx SocketTools.NntpClient.9 Network News Transfer Protocol Control
cspopax9.ocx SocketTools.PopClient.9 Post Office Protocol Control
csrasax9.ocx SocketTools.Dialer.9 Remote Access Services Dialer Control
csrshax9.ocx SocketTools.RshClient.9 Remote Command Protocol Control
csrssax9.ocx SocketTools.NewsFeed.9 Syndicated News Feed Control
cstimax9.ocx SocketTools.TimeClient.9 Time Protocol Control
cstntax9.ocx SocketTools.TelnetClient.9 Telnet Protocol Control
cstshax9.ocx SocketTools.SshClient.9 Secure Shell Protocol Control
cstxtax9.ocx SocketTools.TextMessage.9 Text Messaging Control
cswhoax9.ocx SocketTools.WhoisClient.9 Whois Protocol Control
cswskax9.ocx SocketTools.SocketWrench.9 Windows Sockets (SocketWrench) Control
cswsvax9.ocx SocketTools.InternetServer.9 Windows Sockets Server Control