Winsock Programmer's FAQ
Section 5.1: Winsock Libraries and Controls

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: BSAFE SSL
    Vendor: RSA Security
    Provides: SSL/TLS (and encryption in general)
    Platform(s): Win32, Unix, Linux, QNX, VxWorks
    Library type: C and Java libraries
    Price: Negotiated
    Licensing: Commercial, royalty-based

    Package: DXSock
    Vendor: Brain Patchwork DX, LLC.
    Provides: 30 Internet protocols, plus additional utility functionality
    Platform(s): ALL
    Library type: Native versions for Delphi, C++ Builder, JBuilder, Kylix, Visual C++, and Java
    Price: $400 for a no-source package, $800 for source code. (Java and VC++ versions require that you buy a source license)
    Licensing: Commercial, royalty-free

    Package: e-Border SDK
    Vendor: NEC
    Provides: SOCKSv5 protocol support
    Platform(s): Win32, Unix
    Library type: C library
    Price: Negotiated
    Licensing: Commercial, royalty basis (?)

    Package: Internet Framework Tools
    Vendor: Logic*Central
    Provides: HTTP client and server components
    Platform(s): Win32
    Library type: Clarion library
    Price: $99 for HTTP Server, $89 for HTTP Client
    Licensing: Royalty-free
    Commentary: The Internet Framework Tools let you build web-based client and server applications with the Clarion language.

    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: 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: 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: 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

    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: SourcePro Net
    Vendor: Rogue Wave Software
    Provides: CORBA, FTP, HTTP, POP and SMTP
    Platform(s): Win32, Unix, Red Hat Linux, AS/400, OS/390
    Library type: C++ class library
    Price: Contact the company for a quote (FWIW, it was $1795 per platform last I checked)
    Licensing: Royalty-free?
    Commentary: This package is built on Rogue Wave's SourcePro C++ library, so you buy that package and add SourcePro Net to it.
    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: SSL Plus
    Vendor: Certicom
    Provides: SSL/TLS (encrypted sockets)
    Platform(s): Win32, Unix, Linux, MacOS, VxWorks
    Library type: C and Java libraries
    Price: Negotiated
    Licensing: Commercial, royalty-based

    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: 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: 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: 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: 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.

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: 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: 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: 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

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

    Package: Indy
    Vendor: The Indy Dev Team
    Provides: HTTP, MIME, NNTP, POP, SMTP
    Platform(s): Win32
    Library type: Delphi/C++Builder components
    Licensing: Open Source
    Commentary: This open-source networking effort is now included with Borland's Delphi 6 and Kylix products. Development continues independently, however, so you may want to visit this site to get updated versions of your Borland tool's networking components. Or, if you're using C++Builder, you'll want to get these now instead of waiting for the next release to include them.

    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: Komodia TCP/IP Library
    Vendor: Komodia
    Provides: Basic high- and low-level network I/O class library
    Platform(s): Win32
    Library type: C++ class library
    Licensing: Open Source
    Commentary: This library features a broad array of raw sockets mechanisms. This is hacking/security-grade code, suitable for crafting specialized packets, network sniffing, etc. It also has code for writing high-level TCP and UDP/IP programs.

    Package: LibnetNT
    Vendor: eEye
    Provides: Low-level network I/O
    Platform(s): Windows NT 4.0 and up
    Library type: Win32 DLL
    Licensing: Open Source
    Commentary: This is an NT port of the libnet Unix library for low-level network I/O: crafting special packets, sniffing, etc.

    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: OpenSSL
    Author: OpenSSL Development Team
    Provides: SSL/TLS (encrypted sockets), certificates, etc.
    Platform(s): Win32, Unix
    Library type: C library
    Licensing: Apache-style (Open source)
    Commentary: Based on the old SSLeay code, this library has been polished and hardened for use by the OpenSSH secure shell project. It is a completely separate effort, however, so you can use it in your own programs.

    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: 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: Socket++
    Author: Gnanasekaran Swaminathan and Dr. Greg Lavender
    Provides: A C++ wrapper for BSD sockets
    Platform(s): Win32, Linux, Unix
    Library type: C++ class library
    Licensing: Open Source

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

    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.


<< Winsock Resources Samples: Tutorial Code >>
Last modified on 6 October 2001 at 13:09 UTC-7 Please send corrections to tangent@cyberport.com.
< Go to the main FAQ page << Go to the Home Page