August 11, 2022, 05:21:29 AM

News:

IonicWind Snippit Manager 2.xx Released!  Install it on a memory stick and take it with you!  With or without IWBasic!


SocketTools Classes for Aurora (Internet Protocol Classes)

Started by Mike Stefanik, February 23, 2006, 05:27:13 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

Mike Stefanik

February 23, 2006, 05:27:13 AM Last Edit: August 24, 2007, 10:03:46 AM by Mike Stefanik
I've uploaded the first build of SocketTools for Aurora. For those of you who aren't familiar with SocketTools, it's a collection of components (specifically in this case, a collection of classes for Aurora) that allow you to easily do things like upload and download files, compose and send email, execute remote commands and so on.

This is just the initial release, and only a few of the classes are ready; I'll continue to work on updating it and eventually all of the documented classes will be available. Right now, it includes the CDnsClient, CFtpClient, CHttpClient and CSocketWrench classes (SocketWrench is a general purpose TCP/IP class that wraps the Windows Sockets API). It includes a help file and some example programs. You can download it from here (it's completely free, but keep in mind it is a pre-release version):

[Download link removed, beta period expired]

The installer knows how to put all of the files in the right place, so all you should need to do is #include "cstacl45.inc" in your program and you're good to go. The documentation, while not complete, does have a fairly reasonable Developer's Guide with an introduction to the various protocols, and overview of the classes and so on.

Any feedback, bugs, etc. on either the code or the documentation is welcome and if you have any technical questions on how to do something, just post here and I'll be sure to follow up.

Just as a quick example, here's how you could download a file with the CFtpClient class using a given URL:


#autodefine "off"
#include "cstacl45.inc"

global sub main
{
CFtpClient ftpClient;
string strLocalFile = "readme.txt";
string strURL = "ftp://ftp.w3.org/pub/doc/README.txt";

if (ftpClient.DownloadFile(strLocalFile, strURL))
{
writeln("Download was successful!\n");
}
else
{
string strError;

ftpClient.GetErrorString(0, strError);
writeln("Download failed, " + strError + "\n");
}

while GetKey() = "";
return;
}


Mike Stefanik
www.catalyst.com
Catalyst Development Corporation

Mike Stefanik

Paul found a problem with one of the samples and suggested a minor change to the install, so I've re-uploaded it. You can (re)download using the same URL I posted above.
Mike Stefanik
www.catalyst.com
Catalyst Development Corporation

John S

First of all, is this something that should go in the public area?  Is it an add-on library or is it intended to become integrated into Aurora?

Some of what you guys are doing is really terrific stuff and perhaps should be public.

Secondly, I thought socket tools were used by auto mechanics to fix cars.  :P
John Siino, Advanced Engineering Services and Software

Mike Stefanik

It's an add-on library. SocketTools started out as a collection of VBXs (Visual Basic controls) back in the mid 90s and has grown since then to provide support for a lot of different languages. And I did post in the public area, in case folks were interested in taking a look.
Mike Stefanik
www.catalyst.com
Catalyst Development Corporation

Mike Stefanik

March 05, 2006, 10:58:40 PM #4 Last Edit: August 24, 2007, 10:04:13 AM by Mike Stefanik
An updated build of SocketTools has been released, version 4.50.1186. You should uninstall the previous version before installing this update, and make sure that you have the Alpha 2 Rev 9 version of the compiler installed. [Download link removed, beta period expired]

This new version addresses some minor bugs and adds several new classes and examples:


  • A new CIcmpClient class has been added which implements the Internet Control Message Protocol (ICMP). This is commonly used to determine the availability of a remote host, and determine the latency between the local and remote host. This is what the ping.exe and tracert.exe commands in Windows uses, and it allows you to implement the same kind of functionality in your application. Take a look at the new Ping and TraceRoute examples.
  • A new CTelnetClient class has been added which implements the TELNET protocol. This allows you to establish an interactive, character-based (command line) session with a remote host.
  • A new CTerminal class has been added which implements an ANSI or DEC VT-100/VT-220 virtual terminal display. This class is derived from CWindow, and provides emulation services with a lot of different options. Note that the included documentation is (for now) out of sync with the class implementation, so always refer to the class definition in the cstacl45.inc file. A new example called Terminal has been added which demonstrates how to use the CTerminal and CTelnetClient classes together.
Mike Stefanik
www.catalyst.com
Catalyst Development Corporation

Mike Stefanik

I've posted an update for the current version of the compiler (Alpha 2 Rev 11). You can download it using the same link as above.
Mike Stefanik
www.catalyst.com
Catalyst Development Corporation

Protected

Is SocketTools going to work (/does it work) with the linux compiler?

Mike Stefanik

Right now they're Windows only. Linux support is something that I'll consider down the road.
Mike Stefanik
www.catalyst.com
Catalyst Development Corporation

Steven Picard


Mike Stefanik

Thanks, I'm working on cleaning up the remaineder of the classes (MIME, IMAP4, POP3, SMTP and RSH) and I'll post another update. Then the work on updating the documentation starts, which is going to be so much fun. :)
Mike Stefanik
www.catalyst.com
Catalyst Development Corporation

Steven Picard

BTW, I tried your socket tools 1-2 years ago (can't remember) for VB. I still get your newsletter in.  :)

Mike Stefanik

If you get a chance to test out the Aurora classes, let me know what you think. I'm always open to suggestion.
Mike Stefanik
www.catalyst.com
Catalyst Development Corporation

Rock Ridge Farm (Larry)


Mike Stefanik

August 24, 2007, 09:55:13 AM #13 Last Edit: August 24, 2007, 10:02:56 AM by Mike Stefanik
We're in the process of adding SSH/SFTP support now for the next major release. However, as I mentioned in the other thread, I'm no longer working on Aurora classes. Our Secure Library Edition would work (since they're standard DLLs that have an interface similar to the Windows API), however I imagine it would be out of the price range for most folks, particularly those using a freeware compiler.

The vast majority of our customers are corporate developers using Visual Studio (Visual Basic, Visual FoxPro, C#, C++) or Borland Developer Studio (primarily Delphi or C++). The other languages that have been popular are Clarion, PowerBuilder and PowerBASIC; they're all commercial languages, of course, primarily geared towards business applications.

EDIT: Thanks for pointing out this thread, I'll edit the previous posts to remove the inactive download links.
Mike Stefanik
www.catalyst.com
Catalyst Development Corporation

Ionic Wind Support Team

Ionic Wind Support Team