<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Catalyst Development</title>
	<atom:link href="http://blog.catalyst.com/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.catalyst.com</link>
	<description>Applications, Components and Libraries For Software Developers</description>
	<lastBuildDate>Tue, 01 Dec 2009 22:50:23 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>SocketTools Toolbox</title>
		<link>http://blog.catalyst.com/archives/48</link>
		<comments>http://blog.catalyst.com/archives/48#comments</comments>
		<pubDate>Mon, 23 Nov 2009 22:48:35 +0000</pubDate>
		<dc:creator>Catalyst</dc:creator>
				<category><![CDATA[General Information]]></category>
		<category><![CDATA[SocketTools]]></category>

		<guid isPermaLink="false">http://blog.catalyst.com/?p=48</guid>
		<description><![CDATA[We&#8217;re pleased to announce the release of our SocketTools Toolbox collection of Internet development components. These new products offer you an efficient, cost-effective way to incorporate Internet functionality into your applications, no matter what kind of software development platform or which specific programming language you&#8217;re using.
One of the most common requests that we&#8217;ve heard from [...]]]></description>
			<content:encoded><![CDATA[<p>We&#8217;re pleased to announce the release of our SocketTools Toolbox collection of Internet development components. These new products offer you an efficient, cost-effective way to incorporate Internet functionality into your applications, no matter what kind of software development platform or which specific programming language you&#8217;re using.<span id="more-48"></span></p>
<p>One of the most common requests that we&#8217;ve heard from our developers is that they want to use SocketTools in their project, but they really only need support for a particular protocol. The SocketTools Toolbox components meet that need by providing libraries and components for the most commonly used application protocols in the SocketTools suite. They&#8217;re exactly the same components that are included in the SocketTools Editions, packaged individually at a reduced cost.</p>
<p>There are eight SocketTools Toolbox packages available:</p>
<blockquote><p>SocketTools FTP Toolbox<br />
SocketTools HTTP Toolbox<br />
SocketTools IMAP Toolbox<br />
SocketTools MIME Toolbox<br />
SocketTools POP3 Toolbox<br />
SocketTools SMTP Toolbox<br />
SocketTools SSH Toolbox<br />
SocketTools Telnet Toolbox</p></blockquote>
<p>Each of these products are self-contained and include components which can be used with virtually any Windows programming language, along with examples and technical reference documentation. Each Toolbox package includes the following component types:</p>
<blockquote><p>
A managed .NET class for development with Visual Basic .NET and C#, or any other language which can target the .NET Framework. Assemblies are included for use with Visual Studio .NET 2003, Visual Studio 2005 and Visual Studio 2008. They are also supported with the current beta release of Visual Studio 2010 and the .NET Framework 4.0.</p>
<p>An ATL-based ActiveX control for development with classic Visual Basic, Visual FoxPro, PowerBuilder and any other language which supports the use of ActiveX/COM components. The ActiveX controls can also be used as automation objects with scripting languages such as VBScript.</p>
<p>A Windows dynamic link library (DLL) that can be used with most programming languages. These libraries provide a standard SDK style interface that is very similar to the Windows API. Class wrappers, header files and import libraries are provided for Visual C++ and Borland C++, along with constants and function declarations for languages such as Visual Basic and PowerBASIC.</p></blockquote>
<p>Each of the networking components supports secure connections, using the Secure Sockets Layer (SSL), Transport Layer Security (TLS) and/or Secure Shell (SSH) protocols. For example, the SocketTools FTP Toolbox package can be used to establish a standard FTP connection, a secure connection using SSL/TLS (FTPS) or a secure connection using SSH (SFTP). Because you don&#8217;t need multiple components to support the different types of security protocols, your code is simplified and the amount of time you spend implementing file transfer functionality in your application can be significantly reduced. The different SocketTools Toolbox packages can also be combined, if your application needs support for more than one Internet protocol.</p>
<p>For more information, please visit our website at <a href="http://go.catalyst.com/toolbox" target="_blank">go.catalyst.com/toolbox</a> where you can get an overview of each of the products, along with pricing and download links for a free 30-day evaluation.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.catalyst.com/archives/48/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SocketTools 7 Preview</title>
		<link>http://blog.catalyst.com/archives/42</link>
		<comments>http://blog.catalyst.com/archives/42#comments</comments>
		<pubDate>Fri, 04 Sep 2009 00:02:37 +0000</pubDate>
		<dc:creator>Catalyst</dc:creator>
				<category><![CDATA[Product Updates]]></category>
		<category><![CDATA[SocketTools]]></category>

		<guid isPermaLink="false">http://blog.catalyst.com/?p=42</guid>
		<description><![CDATA[SocketTools 7, codenamed &#8220;Sawtooth&#8221;, is going to introduce some exciting new features, along with some additional components that expand the functionality of the product. We wanted to provide you with an overview of a few of the things you can expect to see in this upcoming release, as well as provide some general information about [...]]]></description>
			<content:encoded><![CDATA[<p>SocketTools 7, codenamed &#8220;Sawtooth&#8221;, is going to introduce some exciting new features, along with some additional components that expand the functionality of the product. We wanted to provide you with an overview of a few of the things you can expect to see in this upcoming release, as well as provide some general information about the new version.<span id="more-42"></span></p>
<p>Here is a brief overview of just a few of the major changes that will be coming in the next release. Additional information about SocketTools 7 can be found in the <a href="http://www.catalyst.com/support/faq/sawtooth.html" target="_blank">Frequently Asked Questions</a> document on our website.</p>
<p><strong>Native support for 64-bit Windows applications</strong>. The SocketTools 7 .NET and Library Editions will include 64-bit editions that can be used to build native 64-bit versions of your applications. Of course, we will continue to offer our 32-bit components as well, allowing developers to target the platforms of their choice.</p>
<p><strong>Support for Internet Protocol version 6 (IPv6)</strong>. Commonly known as the next generation Internet protocol, IPv6 is designed to eventually replace the current version. IPv6 addresses many of the problems with the current version of the protocol, and adds a number of improvements in terms of routing, network configuration and overall performance. While most of the Internet still uses IPv4, offering support for IPv6 ensures the long-term compatibility of your application software.</p>
<p><strong>Support for Quality of Service functionality</strong>. The ability to negotiate and manage the bandwidth allocated to a connection is known as Quality of Service (QoS). This allows an application to prioritize network traffic for mission-critical applications, as well as obtain statistical information about the connection.</p>
<p><strong>Support for the Really Simple Syndication (RSS) protocol</strong>. A new library and component will be included that provides a simplified interface to download and parse RSS feeds. RSS has become common place in providing updates to frequently changing content on the Internet, and can also be used programmatically. For example, your application could check an RSS feed to determine if it is running the current version, or if the user should be notified of a new release.</p>
<p><strong>Support for Short Message Service (SMS) text messaging</strong>. This component and library enables developers to send short text messages, typically 160 characters or less, to a mobile device. All you need to know is the cell phone number and provide the text that you wish to send. A method for specifying an alternate email gateway server, typically needed for providers outside of the United States, can also be specified if needed.</p>
<p><strong>Support for very large file transfers</strong>. Currently, file transfers using protocols like FTP and HTTP are limited to 4GB. In SocketTools 7, these limitations will be removed, enabling applications to upload and download very large files that exceed 4GB.</p>
<p><strong>Support for automatic management of background file transfers</strong>. This will enable your application to queue  file transfers in the background, without interfering with the current thread of execution. For example, you could have a number of files that you want your software to download at one time. With this option enabled, you request the files as you normally would and the data transfer begins in the background, executing in a separate thread and control is immediately returned to your program. An event is used to signal when the transfer has completed. There&#8217;s no need for you to worry about managing multiple threads or worry about writing complex inter-process communication code.</p>
<p><strong>Network protocol improvements and extensions</strong>. SocketTools 7 will also include improvements to many of the network protocols, such as support for HTTP compression, Integrated Windows Authentication support and improved session logging and debugging features.</p>
<p>Of course, one of the most common concerns for developers is code compatibility. SocketTools 7 will continue to include all of the components and libraries in the current version and will be source compatible to ensure that upgrading is as easy as possible. This includes continuing support for ActiveX controls and Visual Basic 6.0 (Classic VB). We will continue to support all of the current Windows platforms from Windows 2000 and later, including the new release of Windows 7 in October, 2009. As with previous versions, SocketTools 7 will support side-by-side installation. You can safely install the new version on the same system that already has a previous version of SocketTools installed.</p>
<p>SocketTools 7 is currently under development, and there will be phased beta testing similar to how the beta test for version 6.0 was managed. If you&#8217;re a current beta tester, you&#8217;ll automatically be invited for the first round of testing. We&#8217;ll then open up testing to other developers who are interested in working with the new release. We currently plan on releasing SocketTools 7 in Q1 2010, although this is subject to change based on the testing process and feedback from developers.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.catalyst.com/archives/42/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Remote Command Execution</title>
		<link>http://blog.catalyst.com/archives/36</link>
		<comments>http://blog.catalyst.com/archives/36#comments</comments>
		<pubDate>Wed, 12 Aug 2009 20:50:22 +0000</pubDate>
		<dc:creator>Catalyst</dc:creator>
				<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[SocketTips]]></category>
		<category><![CDATA[Visual Basic]]></category>

		<guid isPermaLink="false">http://blog.catalyst.com/?p=36</guid>
		<description><![CDATA[When people think of the Secure Shell (SSH) protocol, interactive terminal sessions and secure file transfers are typically what to come to mind. In addition to these common functions, SSH also supports securely executing a command on a remote host and returning the output of that command back to the local system. The SSH component [...]]]></description>
			<content:encoded><![CDATA[<p>When people think of the Secure Shell (SSH) protocol, interactive terminal sessions and secure file transfers are typically what to come to mind. In addition to these common functions, SSH also supports securely executing a command on a remote host and returning the output of that command back to the local system. The SSH component that is included with the SocketTools Secure Editions enables you to take advantage of this functionality through a single method call named Execute.<span id="more-36"></span></p>
<p>For example, in Visual Basic the code could look like this:</p>
<pre>
  SecureShell.HostName = "remote.server.net"
  SecureShell.UserName = "username"
  SecureShell.Password = "password"

  Dim strResult = SecureShell.Execute("/bin/ps -ef")
  If strResult.Length = 0 And SecureShell.LastError > 0 Then
      MessageBox.Show(SecureShell.LastErrorString)
      Exit Sub
  End If

  TextBox1.Text = strResult
</pre>
<p>In this example, the typical property values are set for the SSH server domain name or IP address, the user name and password required to authenticate the session. The Execute method is then called, providing the command to execute as a parameter, and the output from the command will be returned to a string value. In this case, we&#8217;re connecting to a UNIX based system and listing all of the running processes using the /bin/ps command.</p>
<p>If an error occurs, then the return value will be an empty string and the LastError property will be set to a value which identifies the error condition. In this case, we simply display a message box that shows a human-readable description of the last error code and then exit the subroutine.</p>
<p>As with an interactive terminal session, the entire operation is encrypted over the network, including the command that is sent and the output that it returns. For this reason, using SSH is preferred over the old rexec protocol which would send both the user credentials and the command as plain text. If you&#8217;re currently using the Remote Command class in your applications, it&#8217;s recommended that you consider rewriting your code to use the SSH component as a secure alternative.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.catalyst.com/archives/36/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Windows 7 Compatibility</title>
		<link>http://blog.catalyst.com/archives/35</link>
		<comments>http://blog.catalyst.com/archives/35#comments</comments>
		<pubDate>Tue, 28 Jul 2009 00:12:04 +0000</pubDate>
		<dc:creator>Catalyst</dc:creator>
				<category><![CDATA[General Information]]></category>
		<category><![CDATA[SocketTools]]></category>

		<guid isPermaLink="false">http://blog.catalyst.com/archives/35</guid>
		<description><![CDATA[Microsoft announced that Windows 7 was released to manufacturing on July 22, 2009 and will be generally available in October. This new version of Windows is essentially an incremental release that builds on the features introduced with Windows Vista, with a focus on increased hardware and software compatibility, improved performance and new, redesigned shell. The [...]]]></description>
			<content:encoded><![CDATA[<p>Microsoft announced that Windows 7 was released to manufacturing on July 22, 2009 and will be generally available in October. This new version of Windows is essentially an incremental release that builds on the features introduced with Windows Vista, with a focus on increased hardware and software compatibility, improved performance and new, redesigned shell. The <a href="http://blogs.msdn.com/e7/" target="_blank">Engineering Windows 7</a> blog at Microsoft has some excellent information about this new version of Windows.<span id="more-35"></span></p>
<p>SocketTools 6.0 is fully compatible with Windows 7 and it is recommended that developers download the current service pack update. For those developers who are using older versions of SocketTools, we recommend upgrading to the current version of SocketTools to ensure compatibility with the Windows 7 operating system. Customers who have purchased the SocketTools Subscription can download the latest version using the download link provided when they purchased the subscription. More information about <a href="http://www.catalyst.com/products/sockettools/whatsnew.html" target="_blank">SocketTools 6.0</a> is available on our website.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.catalyst.com/archives/35/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SocketTools 5.0 Technical Support</title>
		<link>http://blog.catalyst.com/archives/34</link>
		<comments>http://blog.catalyst.com/archives/34#comments</comments>
		<pubDate>Mon, 01 Jun 2009 18:51:33 +0000</pubDate>
		<dc:creator>Catalyst</dc:creator>
				<category><![CDATA[General Information]]></category>
		<category><![CDATA[SocketTools]]></category>
		<category><![CDATA[SocketWrench]]></category>

		<guid isPermaLink="false">http://blog.catalyst.com/archives/34</guid>
		<description><![CDATA[Technical support for version 5.0 of all SocketTools Editions, all SocketWrench Editions, and the File Transfer and Internet Mail products will officially end on June 30, 2009. It is recommended that those developers who are currently using version 5.0 download the last available build. Links to download the product files can be found in Knowledge [...]]]></description>
			<content:encoded><![CDATA[<p>Technical support for version 5.0 of all SocketTools Editions, all SocketWrench Editions, and the File Transfer and Internet Mail products will officially end on June 30, 2009. It is recommended that those developers who are currently using version 5.0 download the last available build. Links to download the product files can be found in Knowledge Base <a href="http://www.catalyst.com/cgi-bin/knowbase.cgi?action=view&#038;docid=100269" target="_blank">Article 100269</a>. There will be no further updates or hotfixes published for this version of the product.<span id="more-34"></span></p>
<p>If you are currently using version 5.0, you can <a href="http://www.catalyst.com/order/upgrade.html" target="_blank">upgrade to the current version</a> at a discounted price. Version 6.0 is source compatible with version 5.0 and can be installed side-by-side on the same development system. For more information about what&#8217;s new with SocketTools 6.0, please visit our website. If you have any questions, feel free to post in the technical support forum section appropriate for your product.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.catalyst.com/archives/34/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SocketTools 6.0 Service Pack 1</title>
		<link>http://blog.catalyst.com/archives/33</link>
		<comments>http://blog.catalyst.com/archives/33#comments</comments>
		<pubDate>Fri, 27 Mar 2009 19:26:12 +0000</pubDate>
		<dc:creator>Catalyst</dc:creator>
				<category><![CDATA[Product Updates]]></category>
		<category><![CDATA[SocketTools]]></category>

		<guid isPermaLink="false">http://blog.catalyst.com/archives/33</guid>
		<description><![CDATA[SocketTools 6.0 Service Pack 1 (SP1) has been released and offers improved performance and broader SSH server compatibility, along with a number of corrections to various components and libraries. For developers who are currently using version 6.0, this new service pack includes all of the hotfixes and updates made since the original release and is [...]]]></description>
			<content:encoded><![CDATA[<p>SocketTools 6.0 Service Pack 1 (SP1) has been released and offers improved performance and broader SSH server compatibility, along with a number of corrections to various components and libraries. For developers who are currently using version 6.0, this new service pack includes all of the hotfixes and updates made since the original release and is a free download for all registered developers. The most significant change has been made to the SSH and SFTP functionality, addressing a number of issues that were found with third-party commercial SSH servers, as well as some general compatibility problems reported by developers. For more information, please review the <a href="http://www.catalyst.com/products/sockettools/release.html">release notes</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.catalyst.com/archives/33/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>InternetServer Class For SocketTools .NET</title>
		<link>http://blog.catalyst.com/archives/32</link>
		<comments>http://blog.catalyst.com/archives/32#comments</comments>
		<pubDate>Wed, 18 Feb 2009 17:44:15 +0000</pubDate>
		<dc:creator>Catalyst</dc:creator>
				<category><![CDATA[.NET Framework]]></category>
		<category><![CDATA[SocketTips]]></category>
		<category><![CDATA[SocketTools]]></category>

		<guid isPermaLink="false">http://blog.catalyst.com/archives/32</guid>
		<description><![CDATA[The SocketTools 6.0 .NET Edition introduced the new InternetServer class that was designed to simplify the implementation of a TCP/IP server application. With only a few lines of code, you can create the framework for a multi-threaded server that is completely event driven. You only need to create event handlers and then write your server [...]]]></description>
			<content:encoded><![CDATA[<p>The SocketTools 6.0 .NET Edition introduced the new InternetServer class that was designed to simplify the implementation of a TCP/IP server application. With only a few lines of code, you can create the framework for a multi-threaded server that is completely event driven. You only need to create event handlers and then write your server code to respond to those network events.<span id="more-32"></span></p>
<p>Although the class makes developing server applications significantly easier, there are a few important things to keep in mind when using this class:</p>
<p>Although the code that you&#8217;ll write will look like typical single-threaded code that responds to events, it&#8217;s actually a multi-threaded application, with each client session isolated in its own thread. When network events are raised, they are being raised within the context of the thread that&#8217;s generated them. For example, this means that when the OnRead event fires, it&#8217;s not firing within the thread that created that instance of the InternetServer class (e.g.: the main UI thread). Any code that you have inside that event handler is executing in the context of the thread that&#8217;s managing that specific client session.</p>
<p>Because network events are being raised in the context of the client session threads, this means you cannot update user interface controls directly from within the event handlers. .NET does not allow one thread to modify a control that was created in another thread (usually the main UI thread). This is an absolute rule, and if you break it, your program is either going to hang or throw an exception. If you want to change any property values or call methods in a control, you need to create a delegate and marshal the call to the UI thread to using the Invoke method. Both the VB.NET and C# examples show how to do this; in the example, it&#8217;s used to update a ListBox control. Frequently updating the user interface from within an event handler can have a very negative impact on the overall performance of your program. Marshalling calls across threads to those UI controls is an expensive operation, and while you&#8217;re doing it, you&#8217;re not servicing network events like OnRead. You should keep it to a minimum, only updating the UI when absolutely necessary.</p>
<p>Another important consideration is that you should never modify shared objects without first synchronizing access to that object. In VB.NET it&#8217;s typically done using the SyncLock statement; in C# it&#8217;s done using the lock statement. The VB.NET and C# examples show to do this using a shared instance of a Hashtable class which is used to keep track of the number of bytes echoed by the server. While our lower-level API provides thread-safe queuing functions (InetServerEnqueue, InetServerDequeue, etc.) this doesn&#8217;t exist in the .NET class, largely because it would be redundant. If you want to use a queue, then you use the .NET Queue class, but the same rule applies; make sure that you synchronize access to the queue. While the InternetServer class does have Lock and Unlock methods, you should never use it for general purpose synchronization in your program. Calling the Lock method will cause every single client thread to block, and so while using Lock and Unlock would seem to be the easiest approach, it&#8217;s not a good idea for performance reasons.</p>
<p>The InternetServer class provides two general forms of many methods which are used to exchange data with the clients, ones which requires a handle to the client socket, and ones that do not. It&#8217;s not required that you specify a client handle if your code is inside an event handler (or in a function that&#8217;s being called by an event handler); the class knows which client raised the event and calls to Read and Write will work with that client (referred to as the &#8220;current client&#8221; in the documentation). However, if you want to exchange data with a client outside of an event handler, or with a client other than the current client, then you must specify a handle. Also, certain properties only return meaningful results from within an event handler. For example, the ClientAddress property (which returns the IP address of the client) should only be referenced from within an event handler such as OnConnect. The documentation notes when a property or method should only be used inside an event handler.</p>
<p>Finally, while it is possible to exchange data in an event handler with a client other than the one that generated the event, it&#8217;s not recommended. This is a case where you should use the Lock method to ensure that you&#8217;re the only thread that is attempting to read or write on that socket at the time. Two threads that attempt to read or write data on the same socket has undefined results; there&#8217;s no guarantee which thread would &#8220;get there first&#8221;, and the end result can be really unpredictable behavior by your program. One way to think about this is to think of your server program as a house, with each client connection being a room inside that house. You can do pretty much anything you want inside your own room (from within the event handler code that you write). However, if you want to go into another room and start rearranging the furniture, you need to make sure that every other thread is locked out while you do that. When you&#8217;re done and back in your own room, then you unlock the server and continue on.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.catalyst.com/archives/32/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>File Transfer Verification</title>
		<link>http://blog.catalyst.com/archives/31</link>
		<comments>http://blog.catalyst.com/archives/31#comments</comments>
		<pubDate>Thu, 22 Jan 2009 22:19:33 +0000</pubDate>
		<dc:creator>Catalyst</dc:creator>
				<category><![CDATA[SocketTips]]></category>
		<category><![CDATA[SocketTools]]></category>

		<guid isPermaLink="false">http://blog.catalyst.com/archives/31</guid>
		<description><![CDATA[SocketTools 6.0 introduced some new functionality as part of the existing file transfer API and components that enables applications to verify that the contents of a file on the local system are the same as a file on the server. This can be used to either ensure that a file was uploaded correctly, or to [...]]]></description>
			<content:encoded><![CDATA[<p>SocketTools 6.0 introduced some new functionality as part of the existing file transfer API and components that enables applications to verify that the contents of a file on the local system are the same as a file on the server. This can be used to either ensure that a file was uploaded correctly, or to check whether or not a file should be downloaded. For example, an application could check to see if the contents of a local file were the same as a remote file the user has requested to download, and if they match, the application knows it&#8217;s not necessary to download the file again.<span id="more-31"></span></p>
<p>The file verification is performed using one of several methods, depending on what features the server supports. There are three general options available when performing file verifications using FTP: an MD5 hash, a CRC-32 checksum or a file size comparison. If the server supports the XMD5 command, then this is used to generate an MD5 hash and compare it against the local file; if the hash value matches, then the contents of the file are identical. If the server doesn&#8217;t support this feature, a CRC-32 checksum can be generated in a similar fashion using the XCRC command to determine if the file contents are the same. If the FTP server doesn&#8217;t support either MD5 or CRC-32, then a simple file size comparison can be performed.</p>
<p>By default, SocketTools will give preference to the MD5 hash, falling back to a CRC-32 checksum. If neither feature is supported by the server, then it will compare file sizes. Naturally, a file size comparison is the least reliable, so developers can specify if they only wish to use the MD5 and/or CRC-32 methods to determine if the file contents match.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.catalyst.com/archives/31/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Managing Message Stores</title>
		<link>http://blog.catalyst.com/archives/30</link>
		<comments>http://blog.catalyst.com/archives/30#comments</comments>
		<pubDate>Mon, 03 Nov 2008 18:16:33 +0000</pubDate>
		<dc:creator>Catalyst</dc:creator>
				<category><![CDATA[SocketTips]]></category>
		<category><![CDATA[SocketTools]]></category>

		<guid isPermaLink="false">http://blog.catalyst.com/archives/30</guid>
		<description><![CDATA[One of the new features in SocketTools 6.0 is the Message Store API which is designed to make it simple to store and manage email messages on the local system. For developers who use the POP3, IMAP4 and NNTP components to retrieve messages, the storage API enables those messages to be easily stored in a [...]]]></description>
			<content:encoded><![CDATA[<p>One of the new features in SocketTools 6.0 is the Message Store API which is designed to make it simple to store and manage email messages on the local system. For developers who use the POP3, IMAP4 and NNTP components to retrieve messages, the storage API enables those messages to be easily stored in a single file, rather than storing them individually in separate text files. The actual message store format is similar to the standard UNIX mbox format, and the API can actually be used to open mailboxes that were created on a UNIX or Linux system.<span id="more-30"></span></p>
<p>Using the storage API is very simple, with methods that create or open an existing storage file, store new messages, retrieve old messages and search for specific messages. For example, you can search the message store for all emails that have a certain subject or were sent by a particular individual. The API itself is independent of the various email protocol components, and can be interfaced with any of them to provide local storage capability for the email messages that you&#8217;re processing.</p>
<p>The SocketTools Library Edition includes the message store API as part of the MIME API, with new functions such as MimeOpenMessageStore and MimeFindStoredMessage. The SocketTools Visual Edition includes the new functionality as part of the current MailMessage control, while the SocketTools .NET Edition includes it as part of the SocketTools.MailMessage assembly.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.catalyst.com/archives/30/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>SocketTools 6.0 Released</title>
		<link>http://blog.catalyst.com/archives/29</link>
		<comments>http://blog.catalyst.com/archives/29#comments</comments>
		<pubDate>Tue, 09 Sep 2008 00:22:58 +0000</pubDate>
		<dc:creator>Catalyst</dc:creator>
				<category><![CDATA[Product Updates]]></category>
		<category><![CDATA[SocketTools]]></category>
		<category><![CDATA[SocketWrench]]></category>

		<guid isPermaLink="false">http://blog.catalyst.com/archives/29</guid>
		<description><![CDATA[We are pleased to announce that SocketTools 6.0 has been released. This new version includes several new components, including a new SSH component for secure interactive terminal sessions and remote command execution, integrated support for secure file transfers using SFTP and a new Internet Server component that allows you to build a customized, scalable, multi-threaded [...]]]></description>
			<content:encoded><![CDATA[<p>We are pleased to announce that SocketTools 6.0 has been released. This new version includes several new components, including a new SSH component for secure interactive terminal sessions and remote command execution, integrated support for secure file transfers using SFTP and a new Internet Server component that allows you to build a customized, scalable, multi-threaded server with only a few lines of code. The SocketTools 6.0 components are source compatible with version 4.0 and 5.0 and support side-by-side deployment, simplifying the upgrade process so that you can spend your time improving your software, not rewriting it.<span id="more-29"></span></p>
<p>The SocketTools 6.0 Secure Editions introduce new components that implement the Secure Shell (SSH) protocol, which can be used to establish a secure, encrypted connection with a server. With an interface that is similar to our Telnet components, you can implement an interactive terminal session, or you can specify that you want a command executed remotely and the output returned to your application. SSH does not require complicated certificate management and is widely supported on most servers today. Of course, the SocketTools Secure Editions continue to also support the SSL and TLS security protocols, providing the widest range of options to developers who require security features for their applications.</p>
<p>The SocketTools Secure Editions also support file transfers using the Secure Shell (SSH) protocol, as well as the SSL and TLS protocols. Also commonly referred to as FTP+SSH, the SocketTools file transfer components can be used to connect to an SSH server and upload or download files, obtain directory listings and perform common file management functions. Because support for SFTP is integrated into the existing FTP components, in most cases all you need to do is specify the SSH port number without making any other changes to your code. The same interface is provided for FTP, FTP+SSL and FTP+SSH, making it easy to offer the widest range of options to your users. Another new feature of the File Transfer Protocol components is the ability to verify that the file on the local system is identical to the file on the server using an MD5 hash or CRC-32 checksum, and automatically setting the correct file transfer mode based on the type of file being uploaded or downloaded. Developers can also explicitly verify the contents of a file, and can even register their own custom file types.  </p>
<p>One of the most complex tasks in Internet software development is creating a custom server application that can reliably handle a large number of client connections. SocketTools 6.0 introduces a new Internet Server component to simplify the development of custom servers, providing an easy-to-use framework where the only code you need to write is in response to events that are sent to your application. With a single function call, you can create a scalable, multi-threaded, event-driven server that can be used to accept connections from clients anywhere in the world, or just on your local intranet. All of the networking, thread management, synchronization and messaging are handled internally by the framework, allowing you to focus on writing your own code without worrying about the complex details of the server implementation.</p>
<p>Developers who need to create an e-mail application that download and store messages on the local system, the Mail Message (MIME) components and library have been expanded to provide a new storage interface that simplifies the storage, retrieval and management of message. Simply create a new storage file, and begin adding messages to it. When you need to access a stored message, you can reference it by an index number, or you can use functions to search for a particular message that contains a specific header value. For example, you can search the message store for all messages that have been sent by someone with a particular e-mail address. There&#8217;s even a compatibility mode where you can import message stores from UNIX mail systems, if needed.</p>
<p>SocketTools 6.0 is fully compatible with both Windows Vista and Windows Server 2008, and is designed to take advantage of new features introduced in Microsoft&#8217;s latest operating system. Our developers use Windows Vista and Visual Studio 2008 as their primary development platform, so we don&#8217;t simply test under Vista, we work with the operating system every day and understand how it impacts application development in the real world. Of course, SocketTools is also fully supported under Windows XP SP2 and SP3, Windows Server 2003 and Windows 2000. If your users are upgrading to Windows Server 2008 or Windows Vista, then we recommend that you to upgrade to SocketTools 6.0 to ensure compatibility.</p>
<p>For more information, please review the <a href="http://www.catalyst.com/support/faq/sockettools.html" target="_blank">SocketTools FAQ</a> in the support section of our website. We also encourage you to download a free evaluation copy of the SocketTools 6.0 Edition that interests you. The evaluation license is valid for a single development system for 30 days, it is completely functional and can be safely installed side-by-side with earlier versions of SocketTools.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.catalyst.com/archives/29/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
