WATTCP was designed by Erick Engelke in 1989. At the time
there were few free options for TCP/IP on Intel computers.
The key benefit of WATTCP is that it is more easily brought into
applications, as compared to its peers which tend to dominate
applications by their design. Instead, WATTCP is similar to file
I/O and simpler to program.
Internally, WATTCP uses a cleverly small TCP state engine
originally designed
by Geof Cooper. But whereas Geof conceived an event driven
model, the key to the WATTCP's success is a file-like interface, so that
networking programs could be written top-down.
Over time, the system has been enhanced in many ways. Its performance
was tuned to become one of the best among DOS implementations, and
functionality grew in many ways.
One of the most useful features has been the optional ASCII text
i/o mode. Applications can use standard functions write put and
get text strings, just as is true with file i/o. This idea was
common to Phil Karn's KA9Q and obviously to the C i/o library,
but it never was added to the BSD socket interface of either
Windows or Unix. Instead, many programs re-implement the
logic that really should have been part of the API.
WATTCP only uses static buffers, which seem strange to many people now,
but this allowed programmers to write TSR programs which would not have
the luxury of malloc(). That sounds so ancient now.
Today WATTCP is one of the most widely used TCP implementations for
DOS and Extended 32-bit DOS applications.
In the many years since it was introduced, WATTCP has been
enhanced by
many talented and generous individuals.
There are now two streams of WATTCP, one exclusively for Real Mode DOS
and a second which addresses the 32 bit extended DOS environment. The
two streams share their experiences and both benefit from enhancements
to either.
WATTCP is free for use in applications, meaning you pay no royalties
if you incorporate it into your applications. But you may not sell
it. Just give it away.
The printed documentation (WATTCP Programmer's Reference) is
available. It is relevant to both WATTCP streams and is the monetary
way you can thank Erick for his efforts.