Watt-32 tcp/ip Homepage
This page contains my port of Waterloo tcp/ip (WatTCP). Watt-32 is an enhanced version of Geof Cooper's TinyTCP and Erick Engelke's WatTCP. The latest version is dated November 1999 with features integrated into Watt-32.
Watt-32 is a library for making networked TCP/IP programs in the language of C and C++ under DOS and Windows-NT. Both 16-bit real-mode and 32-bit protected-mode is supported.
For DOS, Watt-32 requires a packet-driver (PKTDRVR) to access the data-link layer (Ether-PPP, SLIP or Ethernet. Token-Ring is un-tested). With the correct packet-driver, it will run under all versions of Windows too. I highly recommend SwsVpkt which works much faster than Dan Lanciani's NDIS3PKT. With the SwsVpkt or NDIS3PKT drivers one can connect to Windows services (on the same machine) from a DOS-box too.
For Windows, WinPcap and NPF.SYS are required. Note that Windows 95, 98 and ME are not supported.
The name Watt-32 was chosen to signal the emphasis on 32-bit platforms (Although 16-bit compiler are also supported). What, besides embedded systems, is DOS good for these days if not running high-performance 32-bit programs. And the embedded market is booming; with the price of PC-104/Ethernet cards, Watt-32 could be used in a lot of fancy boxes. How about an IP-telephone, MP3 home-player or an Internet Radio?
These are some of the new functions in Watt-32:
Other planned (or not-yet-working) things include:
Watt-32 supports these compilers and environments:
|Binaries||watt32b 2.2 dev.rel.10||13.8M|
|Sources||watt32s 2.2 dev.rel.10||2.3M|
|Docs/RFCs||watt32d 2.1 dev.rel.1||876k Terribly outdated, I know..|
|Online documentation||Doxygen generated documentation or as a compressed html|
See also misc projects for other Watt-32 /
MingW related packages and patches.
And various tcpdump/libpcap based applications for DOS.
The binary distribution contains some tools in addition to the one in the original Waterloo package:
|archie:||Searches Archie (Prospero) servers for files and directories. Regular expressions is supported. Original design by Clifford Neuman for the Prospero Project, changes by George Ferguson and me.|
|bing:||Braden's Ping is yet another ping tool. Written by Bob Braden at Information Sciences Institute of USC.|
|country:||IP-address to counry converter. Queries the DNS mapping service at countries.nerd.dk and converts the CNAME to a country code and name. Written my me.|
|dig:||Domain Information Groper; send domain name query packets to name servers. Lists Resource Records, Zone information, SOA, MX-records etc. Developed by: Paul Vixie (DEC), Steve Hotz and Paul Mockapetris (USC-ISI).|
|DOS-FTP:||A ftp-client with a conio interface. Supports auto-login, macros (.netrc style) and simple scripting. Does not support PASV mode. Mostly written by me but some modules taken from elsewhere.|
|DOS-VNC:||Virtual Network Console allows remote control of Unix or Windows machines from DOS. This port is currently for djgpp only (using Allegro graphics library). Original version by AT&T. Ported to DOS by Marinos J. Yannikos and me.|
|fping:||Fast parallell Ping. A tool to quickly ping N number of hosts to determine their reachability without flooding the network. Original version by Roland J. Schemers - Stanford University.|
|ftpsrv:|| A small but fully functional ftp-server. Only accepts a single
client at a time.
Done by Luc De Cock.
|host:||Send domain name query packets to name servers. Similar to dig, but with tons of options. Original version by Eric Wassenaar.|
|ICMP-push:||Another expert tool for sending all kinds of ICMP-packets. Not all of which are fiendly... Done by Slayer.|
|MathOpd:||A fast, lightweight, non-forking HTTP server. HTTP/1.0 and HTTP/1.1 compliant, virtual server and CGI support. The server also has a mailing list. Done by Michiel Boland.|
|MTR:||Matt's Traceroute is a very nice diagnostics tool which combines traceroute and ping into one. Requires PD-Curses library to build. Originally by Matt Kimball.|
|netcat:||A tool for reading and writing arbitrary data using UDP/TCP. Handy for redirecting stdin/stdout across the network. Note: Little tested with Watt-32. Created by firstname.lastname@example.org.|
|NetIO:||A djgpp/Watcom tool for measuring read/write speed across network. Win32 and OS/2 executables included for comparision and testing other end of connection. Some test results for the Watt-32 version is here. Created by Kai Uwe Rommel.|
|NetKalahari:||A simple text-based networked game. It uses PD-curses and is only ported to djgpp. Created by Theo Wilhelm and others.|
|nttcp:||An enhanced version of the ttcp speed test program. Little tested by me. I advice you to use Netio as that's fully tested and working with Watt-32. Done by Elmar Bartel.|
|nslookup:||An interactive DNS tool (similar to host and dig. Originally by Andrew Cherenson (UC Berkeley) and Paul Vixie (DEC).|
|popmail:||Simple mail retriever and sender (POP3/SMTP). Can use APOP authentication to login to POP3 server (doesn't send you password in plain-text). Walter A. Nolan wrote it, I added APOP, ISO-8859 charset etc.|
|rdate:||Obtain (and set) the time from a time server (UDP or TCP). Originally by Andy Tefft and Richard Henderson. Ported to Watt-32 by Ken Yap.|
|rdebug:||A simple server that allows telnet clients to remotely read, write and dump memory on target. Done by Ken Yap.|
|SMTP-cli:||A simple cmd-line SMTP client with Mime and syslog logging. For djgpp only. Little tested by me. Made by Ralf S. Engelschall.|
|syslogd:||Syslog Daemon for logging events/messages from Unix clients. Logs to disk or line-printer. Also synchronizes time with NTP broadcasts sent on LAN. Ported to Watt-32 by Ken Yap.|
|suck:||Pulls newsgroups from a NNTP news-server. Accompanying tools sorts and posts articles. Original Authors Tim Smith, Sven Goldt and Robert A. Yetman.|
|talk:||A chat client with colour (conio), aliases, old/new BSD-talk protocol, answer mode and logging. Ported to WatTCP by Michael Ringe.|
|TFTP:||The original BSD tftp (Trivial File Transfer Protocol) client ported to Watt-32.|
|TFTPD:||A tftp server ported to Watt-32. By Craig Leres at Lawrence Berkely Labs.|
|ttcp:||A benchmarking tool for determining TCP and UDP performance between 2 systems. Someone at US Army Ballistics Research Lab (BRL) did this eons ago, but it's still a nice tool. Ported to Watt-32 by Ken Yap.|
|vrfy:||Verifies validity of email addresses. Requires MX host to support the VRFY or EXPN commands. Original version by Eric Wassenaar.|
|watftp:||ftp-client program by Erick Engelke and Dean Roth. See also my own ftp-client.|
|wget:||A very nice utility to retrieve files from servers using HTTP, HTTPS or FTP. By Hrvoje Niksic.|
|WWW-Boa:||A nice little single-tasking HTTP server with CGI-support. Little tested by me. Done by Paul Phillips. Also take a look at the more advanced Go-Ahead web-server.|
If your serious about WatTCP or Watt-32 development, it would be advisable to
purchase of the
WATTCP Programmers Manual available here.
Comments, Watt-32 bug-fixes and contributions are welcome.
E-mail me, Gisle Vanem for comments or preferably join the Watt-32 mailing list at the URL below.
Watt-32 change.log file is here.Subscribe to the Watt-32 mailing list.