<<

Winsock Programmer's FAQ
Section 5.1: Winsock Libraries

>>

Many vendors and shareware authors are releasing Winsock-compatible libraries that implement various Internet protocols like FTP and HTTP. The list below points to as many as I could easily find.

Commercial Products:
    Package: SocketTools
    Vendor: Catalyst Development
    Provides: DNS, finger, gopher, HTTP, FTP, MIME, NNTP, ping, POP, RAS, rexec, rlogin, rsh, SMTP, telnet, time and whois
    Platform(s): Win16, Win32
    Library type: ActiveX, DLL and VBX versions
    Price: $249
    Licensing: Royalty-free
    Commentary: The telnet piece includes VT100 and ANSI terminal emulation. The package also includes components for building a simple browser, such as an HTML display component and image and audio components.

    Package: PowerTCP
    Vendor: Dart Communications
    Provides: Finger, FTP, HTTP, IMAP, MIME, POP, RAS, rexec, rlogin, rsh, SMTP, SNMP, SSL/TLS, telnet, time, TFTP, VT-52 through VT-320 and whois
    Platform(s): Win16, Win32
    Library type: C/C++ (static and DLL), Delphi component, ActiveX, VBX, PowerBuilder
    Price: $200-600 for the base package, $200-1000 per additional component
    Licensing: Varies depending on the type of application.
    Commentary: Many of the items in the "Provides" section above are sold separately from the base PowerTCP package. The base package includes "control"-type libraries. For C++ class libraries and 16-bit components, you must get the "Pro" version of the base package.

    Package: IP*Works!
    Vendor: devSoft
    Provides: Base package: FTP, raw HTTP, raw ICMP, IMAP, LDAP, NNTP, POP, RAS, rexec, rsh, SMTP, SNPP, SNTP and telnet
    PlusPack: finger, HTTP support controls, time, ping, rcp, TFTP, traceroute, and whois
    Commerce Kit: FTP, HTTP, HTTPS, XML
    Platform(s): Win16, Win32
    Library type: C++, VBX, ActiveX, Java, Delphi and C++Builder
    Price: $245-495 depending on the edition, $245 for Commerce Kit
    Licensing: Royalty-free
    Commentary: The library also provides uuencode, Base64 and Quoted Printable binary encoding handling, and mail server address lookup (MX DNS records).
    The PlusPack is free, but only works with the Visual Basic editions.
    Windows CE versions of the base library are available.
    The Commerce Kit apparently does not depend on IP*Works!.

    Package: Visual Internet Toolkit
    Vendor: Distinct
    Provides: Base package: finger, FTP (client and server), HTTP, HTTPS, IMAP, LPR, MIME, NNTP, ping, POP, RAS, rcp, rexec, rlogin, rsh, SLIP and PPP, SOCKS, SMTP, SNMP, telnet, TFTP, VT-220, whois
    Available separately: ONC/RPC (includes XDR)
    Platform(s): Win16, Win32
    Library type: ActiveX, DLL and VBX
    Price: approx. $400 for the main kit, $600 for the RPC kit
    Licensing: Royalty-free?
    Commentary: The ActiveX and 32-bit DLL versions are sold together. VBX and 16-bit DLL versions are sold as separate packages.
    The package also includes uuencoding/uudecoding support, a license manager, and a network sniffer.
    The license manager allows for trialware and "number of running copies" types of licensing.
    The sniffer apparently only works for programs built with the library.
    The ONC/RPC kit appears not to be dependent on the base package, but it is clear that it does not include all of the functionality of the base package. That is, basic networking is available in the RPC package, but not, for example, MIME support. The RPC kit does include the network sniffer and the license manager.

    Package: Ultimate TCP/IP
    Vendor: Dundas Software
    Provides: DNS, FTP, finger, HTTP, IMAP, MIME, NNTP, ping, POP, SMTP, traceroute
    Platform(s): Win32 only
    Library type: C++ class library, ActiveX
    Price: $300 for the ActiveX components, $700 for the C++ version
    Licensing: Royalty-free?
    Commentary: The C++ version inclues the ActiveX components and full source code.

    Package: Tools.h++ Professional
    Vendor: Rogue Wave Software
    Provides: CORBA, FTP, HTTP, POP and SMTP
    Platform(s): Win32, Unix, Linux
    Library type: C++ class library
    Price: $1795 per platform, $3590 for all platforms
    Licensing: Royalty-free?
    Commentary: This package includes all the functionality in Rogue Wave's Tools.h++.
    This package's specialty is cross-platform networking. It includes both functionality to ease communication between disparate platforms, and abstraction layers that allow your program to build on various platforms.

    Package: WinDis32, etc.
    Vendor: PCAUSA
    Provides: various packages for low-level network access (TDI and NDIS layers)
    Platform(s): Windows 9x and Windows NT/2000
    Library type: C library
    Price: $500 for the basic library, $250-1000 for various add-ons and sample kits
    Licensing: Royalty-free

    Package: ToolMate
    Vendor: MicroMate Systems International
    Provides: Basic network I/O
    Platform(s): Win32 only
    Library type: C library
    Price: $20
    Licensing: Royalty-free?
    Commentary: This is a basic Winsock abstraction library, focusing on ease-of-use and efficiency.

    Package: Xceed Winsock Library
    Vendor: Xceed
    Provides: Complete Winsock 2 COM wrapper
    Platform(s): Win32 only
    Library type: COM components
    Price: $300
    Licensing: Royalty-free
    Commentary: This is, at base, a basic network I/O library with a few distinguishing features. It's a COM component that seems truly targeted at language independence and a broad range of product types. By contrast, other COM network I/O libraries focus on trivializing Winsock for lash-it-together-quickly Visual Basic projects.
    The library makes real efforts to be scalable: for example, it provides transparent overlapped I/O support. It's the sort of library that you design a program around, knowing that it will scale if the project needs to go beyond simple network I/O.
    Obviously it's no replacement for direct Winsock I/O for those projects that have truly tight space and speed requirements (high-load web servers, for example), but it might be a good choice if you need something better than the truly basic network I/O components out there.
    Caveat: I've never tried the library; this is just my distilled impression from reading their web pages and such.

    Package: SECUDE SDK
    Vendor: SECUDE
    Provides: Broad array of cryptography, including SSL, certificates, S/MIME, etc.
    Platform(s): Win32, Unix, OS/2, MacOS, AS/400
    Library type: C library
    Price: Negotiated
    Licensing: Commercial, royalty basis

Shareware and Freeware Products:
    Package: ACE
    Author: Douglas Schmidt, et al.
    Provides: Advanced network I/O, CORBA ORB, extensible web server
    Platform(s): Win32, virtually all Unixes, various RTOSes
    Library type: C++ class library
    Licensing: Freeware (details here), with commercial support available.
    Commentary: ACE is the Adaptive Communication Environment, the core component of Dr. Schmidt's offerings. It started as part of his PhD work, and he's been more interested in publishing papers on it than making money from it. It's a very extensive library: hundreds of thousands of lines of code.

    There's quite a lot of documentation for it, but sadly nothing on the order of a good user manual. There's a tutorial that will get you started, but no reference material to speak of, and the tutorial does not go very deeply into the system. Dr. Schmidt offers all the papers he's published on various aspects of ACE and the related projects, but these are mainly about design elements, rather than teaching one how to use the library.

    In summary, the liberal license, the large user community, and the scope of the library demands that you at least take a look at it. The documentation issue means that you'll spend more time reading ACE examples and ACE source code rather than the ACE tutorial and papers, but the learning curve isn't vertical.

    Two related components are worth noting: The ACE ORB (TAO) and the JAWS Adaptive Web Server. These are both built on ACE, and are useful items in their own right.


    Package: mime++
    Author: Douglas W. Sauder
    Provides: MIME message formatting for NNTP, POP, and SMTP
    Platform(s): Win32, Unix
    Library type: C++ class library
    Licensing: Free for non-commercial use

    Package: WinShoes
    Author: Chad Z. Hower and the Winshoes Working Group
    Provides: HTTP, MIME, NNTP, POP, SMTP
    Platform(s): Win32
    Library type: Delphi/C++Builder components
    Licensing: Open Source

    Package: IaLib
    Author: Chris Richardson
    Provides: HTTP, FTP, Gopher
    Platform(s): Win32
    Library type: C++ class library
    Licensing: Freeware

    Package: Tcp4u, Ftp4w
    Author: Philippe Jounin
    Provides: FTP, HTTP, SMTP
    Platform(s): Win16, Win32, Unix
    Library type: C library
    Licensing: LGPL

    Package: Internet Component Suite
    Author: François Piette
    Provides: DNS, finger, FTP, HTTP, MIME decode, NNTP, ping, POP, RAS, SMTP, telnet (client and server)
    Platform(s): Win16, Win32
    Library type: Delphi and C++Builder library
    Licensing: Postcard-ware

    Package: dWinsock
    Author: Ulf Söderberg, Marc Palmer and Keith Hawes
    Provides: Basic network I/O, plus experimental HTTP, MIME, POP, SMTP and uuencode/uudecode code
    Platform(s): Win16, Win32
    Library type: Delphi and C++Builder library
    Licensing: GPL

    Package: SocketWrench
    Vendor: Catalyst Development
    Provides: Basic network I/O, RAS
    Platform(s): Win16, Win32
    Library type: ActiveX, VBX
    Licensing: Freeware
    Commentary: This product is a free subset of Catalyst's SocketTools package, linked above.

    Package: Winsock Resolver
    Author: Wayne Hoxsie
    Provides: Lookup mechanisms for A, MX and NS records in DNS
    Platform(s): Win32
    Library type: C library
    Licensing: Freeware.

    Package: adns
    Author: Ian Jackson, Tony Finch and Jarle Aasa
    Provides: Advanced DNS lookups
    Platform(s): Win32, Unix
    Library type: C library
    Licensing: GPL
    Commentary: This library allows you to look up all kinds of DNS records (as opposed to just the A and PTR records Winsock gives you direct access to). It's also useful because it allows asynchronous lookups. Winsock has asynchronous DNS lookup functions, but they require window messages to work and they're somewhat limited.
    Beware that this is under the GPL license, which means that if you use this library, your program will have to be released under the GPL license as well.

    Package: Standard Function Library
    Vendor: iMatix
    Provides: Basic network I/O, MIME, CGI and SMTP
    Platform(s): Win16, Win32, Linux, Unix, OpenVMS, DOS, OS/2
    Library type: C library
    Licensing: Open Source
    Commentary: The library also includes functionality similar to XDR, which lets you portably send non-integral values across the network.
    SFL is a largish foundation library with many other things besides networking stuff.

    Package: Various MFC classes
    Author: P.J. Naughter
    Provides: finger, FTP, HTTP, IP address enumeration, various types of IPC, MAPI, ping, POP, RAS, SMTP and SNTP
    Platform(s): Win16, Win32
    Library type: C++ class library
    Licensing: Freeware
    Commentary: The components are in the "Network Freeware" section.

    Package: Endpoint
    Author: Warren Young
    Provides: Basic network I/O
    Platform(s): Win16, Win32
    Library type: C++ class library for MFC and OWL
    Licensing: BSD-style


<< Winsock Resources Sample Programs >>
Last modified on 4 July 2000 at 13:42 UTC-7 Please send corrections to tangent@cyberport.com.
< Go to the main FAQ page
<< Go to my Programming pages
<<< Go to my Home Page