📄 watt-32 homepage.htm
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0027)http://www.bgnett.no/~giva/ -->
<HTML><HEAD><TITLE>Watt-32 Homepage</TITLE>
<META http-equiv=Content-Type content="text/html; charset=gb2312">
<META content="Watt-32 homepage, tcp/ip programming for DOS" name=description>
<META
content="tcp/ip, internet, programming, DOS, embedded, BSD-socket, djgpp, Borland, Watcom, Pharlap, Metaware, PKTDRVR, Packet-driver"
name=keywords>
<META content="Gisle Vanem" name=author><LINK rev=made
href="mailto:giva@bgnett.no"><!-- <BASE HREF="http://www.bgnett.no/~giva/"> -->
<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY vLink=#800080 link=#0000ff>
<TABLE cellSpacing=0 cellPadding=2 border=0>
<TBODY>
<TR vAlign=center>
<TD width=200><IMG height=64 alt="[Lynx Friendly Page]"
src="Watt-32 Homepage.files/optilynx.gif" width=64 border=0><!--<a HREF="http://lynx.isc.org/"></a>--> </TD>
<TD width=500>
<H3>Watt-32 tcp/ip Homepage</H3></TD></TR></TBODY></TABLE>
<P>
<HR>
<P></P>
<P>This page contains my port of Waterloo tcp/ip (WatTCP). Watt-32 is an
enhanced version of <A href="mailto:erick@sail.uwaterloo.ca">Erick Engelke's</A>
WatTCP. The latest <A href="http://www.wattcp.com/">version</A> is dated
November 1999 with features integrated into Watt-32.</P>
<P>Watt-32 is a library for making networked TCP/IP programs in the language of
C and C++. Both 16-bit real-mode and 32-bit protected-mode is supported. Watt-32
requires a packet-driver (<I>PKTDRVR</I>) to access the data-link layer
(ether-PPP, SLIP or Ethernet. Token-Ring is untested).</P>
<P>The name Watt-32 was chosen to signal the emphasis on 32-bit platforms
(Allthough 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 <I>IP-telephone</I>, <I>MP3
home-player</I> or an <I>Internet Radio</I>.</P>
<P>These are some of the new functions in Watt-32:</P>
<UL><I>
<LI>DHCP-client</I>: An RFC-1541/2131 compliant DHCP-client allocates an IP
for you, sets the netmask and gateways etc. <BR>User doesn't need to configure
<I>wattcp.cfg</I>. <I>
<LI>RARP-client</I>: <A href="mailto:dank@alumni.caltech.edu">Dan Kegel</A>
contributed a RARP-client which translates your EtherNet address into a usable
IP-address. <I>
<LI>TFTP-client</I>: A small udp client which could be used to transfer an OS
image or any file specified at startup. Great for embedded boxes and/or hosts
using DHCP or fixed IP address. <I>
<LI>ICMP-redirect</I>: Watt-32 automatically switches gateway if an ICMP-
redirect is received. Optionally "ICMP-address mask request" will check your
configured net-mask. <I>
<LI>PPP-support</I>: Watt-32 supports both types of PPP-drivers; i.e. types
that emulate EtherNet frames and those who don't. <BR><A
href="mailto:tonilop@redestb.es">Antonio Lopez Molero</A> has written the
excellent <A
href="http://personal.redestb.es/tonilop/dosppp/dosppp06.zip">DOS-PPP</A>
driver that works very well with Watt-32. <I>
<LI>Protocol debugger</I>: A much improved protocol debugger/tracer analyses
IP (ICMP, UDP and TCP) and ARP/RARP packets to/from your host (or broadcast).
Various headers can be filtered. DNS-records and IP/TCP options are also
shown. <I>
<LI>BIND Resolver</I>: A port of the Unix resolver/DNS library. This was added
mainly to implement the <I>getmxbyname()</I> function used to verify email
addresses (see <I>vrfy</I> below). <I>
<LI>File based lookup</I>: User may specify fixed IP/names in a hosts file.
All the <I>getXbyY()</I> functions from <netdb.h> are supported. Also
supports loading and parsing of <I>/etc/services</I>, <I>/etc/protocols</I>
and <I>/etc/ethers</I>. <I>
<LI>BSD-Sockets</I>: Watt-32 tries to mimic the BSD-socket API with support
for SOCK_DGRAM, SOCK_STREAM, SOCK_RAW, blocking and non- blocking I/O. Most
header files required to port Unix network programs to Watt-32/DOS are
provided. This API needs some work to better support raw-sockets, compliance
to the man-pages etc. But it is currently used to built the Web-browser <A
href="http://lynx.isc.org/current/">Lynx</A>. </LI></UL>
<P>Other planned (or not-yet-working) things include TCP features like <I>RTT
cache</I>, <I>window scaling</I>, <I>SACK</I> (selective acknowledge),
<I>time-stamping</I>, <I>PAWS</I> (protect against wrapped segments) and better
retransmit strategy. </P>
<P>Promiscous mode <I>SOCK_PACKET</I> support for the BSD-socket API. A spin-off
from my <A href="http://www.bgnett.no/~giva/pcap/index.html">tcpdump/libpcap</A>
project might produce a protected-mode packet-driver API for
djgpp/Pharlap/Watcom targets (driver for 3Com's 3C509 is working okay). </P>
<P>A RTP/RTCP module for Realtime (voice/video) applications is planned.
PPP-over-Ethernet (<I>PPPoE</I>) encapsulation for xDSL users is underway
(contributions are welcome). </P>
<H3>Supported Platforms</H3>
<P>Watt-32 supports these compilers and environments:</P>
<UL>
<LI>GNU C/C++ 2.7 (or later) with djgpp 2.x DOS-extender.
<LI>Metaware HighC 3.x with PharLap DOS-extenders.
<LI>Borland C/C++ 4.x (or later), small/large model, real-mode.
<LI>Watcom C/C++ 11.x (or later), small/large/flat (DOS4GW) model.
<LI>Microsoft Quick C v6.0 (or later), small/large model. </LI></UL>The current
distribution of Watt-32 is dated August 12, 2001:
<P></P>
<P><PRE> <B><A href="http://www.bgnett.no/~giva/watt32b-2.1-dev.1.zip">watt32b 2.1 dev.rel.1</A></B> 3.5M -- Binaries
<B><A href="http://www.bgnett.no/~giva/watt32s-2.1-dev.5.zip">watt32s 2.1 dev.rel.5</A></B> 1030k -- Source
<B><A href="http://www.bgnett.no/~giva/watt32d-2.1-dev.1.zip">watt32d 2.1 dev.rel.1</A></B> 876k -- Docs/RFCs
</PRE>
<P></P>
<H3>Watt-32 Network Tools</H3>
<P>The binary distribution contains some tools in addition to the one in the
original Waterloo package:
<TABLE cellSpacing=0 cellPadding=2 border=0>
<TBODY>
<TR vAlign=top>
<TD width=100><I>archie:</I></TD>
<TD width=600>Searches Archie (Prospero) servers for files and
directories. Regular expressions is supported. Original design by <A
href="mailto:bcn@isi.edu">Clifford Neuman</A> for the Prospero Project,
changes by <A href="mailto:ferguson@cs.rochester.edu">George Ferguson</A>
and me.</TD></TR>
<TR vAlign=top>
<TD width=100><I>dig:</I></TD>
<TD width=600>Domain Information Groper; send domain name query packets to
name servers. Lists Resource Records, Zone information, SOA, MX-records
etc. Developed by: <A href="mailto:address_unknown">Paul Vixie</A> (DEC),
<A href="mailto:address_unknown">Steve Hotz</A> and <A
href="mailto:address_unknown">Paul Mockapetris</A> (USC-ISI).</TD></TR>
<TR vAlign=top>
<TD width=100><I>DOS-VNC:</I></TD>
<TD width=600>Virtual Network Console allows remote control of Unix or
Windows machines from DOS. This port is currently for djgpp only (using <A
href="http://www.talula.demon.co.uk/allegro/">Allegro</A> graphics
library). Original <A
href="http://www.uk.research.att.com/vnc/">version</A> by AT&T. Ported
to DOS by <A href="mailto:mjy@pobox.com">Marinos J. Yannikos</A> and
me.</TD></TR>
<TR vAlign=top>
<TD width=100><I>fping:</I></TD>
<TD width=600>Fast parallell Ping. A tool to quickly ping <I>N</I> number
of hosts to determine their reachability without flooding the network.
Original version by <A href="mailto:schemers@slapshot.stanford.edu">Roland
J. Schemers</A> - Stanford University.</TD></TR>
<TR vAlign=top>
<TD width=100><I>host:</I></TD>
<TD width=600>Send domain name query packets to name servers. Similar to
<I>dig</I>, but with tons of options. Original version by <A
href="mailto:e07@nikhef.nl">Eric Wassenaar</A>.</TD></TR>
<TR vAlign=top>
<TD width=100><I>ICMP-push:</I></TD>
<TD width=600>Another expert tool for sending all kinds of ICMP-packets.
Not all of which are fiendly... Done by <A
href="mailto:tcpbgp@softhome.net">Slayer</A>.</TD></TR>
<TR vAlign=top>
<TD width=100><I>MathOpd:</I></TD>
<TD width=600>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
<A href="mailto:mathopd-request@diva.nl">mailing list</A>. Done by <A
href="mailto:boland@diva.nl">Michiel Boland</A>.</TD></TR>
<TR vAlign=top>
<TD width=100><I>netcat:</I></TD>
<TD width=600>A tool for reading and writing arbitrary data using UDP/TCP.
Handy for redirecting <I>stdin</I>/<I>stdout</I> across the network.
<I>Note:</I>Little tested with Watt-32. Created by <A
href="mailto:hobbit@avian.org">hobbit@avian.org</A>.</TD></TR>
<TR vAlign=top>
<TD width=100><I>NetIO:</I></TD>
<TD width=600>A djgpp 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 <A
href="http://www.bgnett.no/~giva/watt32.netio">here</A>. Created by <A
href="mailto:rommel@ars.de">Kai Uwe Rommel</A>.</TD></TR>
<TR vAlign=top>
<TD width=100><I>NetKalahari:</I></TD>
<TD width=600>A simple text-based networked game. It uses <A
href="ftp://ftp.qut.edu.au/pub/markh/PDCurses/beta/pdcurs24.zip">PDcurses</A>
and is currently only ported to djgpp. Created by <A
href="mailto:theo.wilhelm@uibk.ac.at">Theo Wilhelm</A> and others.</TD></TR>
<TR vAlign=top>
<TD width=100><I>nslookup:</I></TD>
<TD width=600>An interactive DNS tool (similar to <I>host</I> and
<I>dig</I>. Originally by Andrew Cherenson (UC Berkeley) and Paul Vixie
(DEC).</TD></TR>
<TR vAlign=top>
<TD width=100><I>popmail:</I></TD>
<TD width=600>Simple mail retriever and sender (POP3/SMTP). Can use APOP
authentication to login to POP3 server (doesn't send you password in
plain-text). <A href="mailto:wan@eng.ufl.edu">Walter A. Nolan</A> wrote
it, I added APOP, ISO-8859 charset etc.</TD></TR>
<TR vAlign=top>
<TD width=100><I>rdate:</I></TD>
<TD width=600>Obtain (and set) the time from a time server (UDP or TCP).
Originally by <A href="mailto:teffta@crypt.erie.ge.com">Andy Tefft</A> and
<A href="maito:rth@tamu.edu">Richard Henderson</A>. Ported to Watt-32 by
<A href="mailto:ken_yap@nlc.net.au">Ken Yap</A>. </TD></TR>
<TR vAlign=top>
<TD width=100><I>syslogd:</I></TD>
<TD width=600>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 <A href="mailto:ken_yap@nlc.net.au">Ken
Yap</A>.</TD></TR>
<TR vAlign=top>
<TD width=100><I>suck:</I></TD>
<TD width=600>Pulls newsgroups from a NNTP news-server. Accompanying tools
sorts and posts articles. Original Authors <A
href="mailto:unknown_address">Tim Smith</A>, <A
href="mailto:goldt@math.tu-berlin.de">Sven Goldt</A> and <A
href="mailto:boby@pixi.com">Robert A. Yetman</A>.</TD></TR>
<TR vAlign=top>
<TD width=100><I>talk:</I></TD>
<TD width=600>A chat client with colour (conio), aliases, old/new BSD-talk
protocol, answer mode and logging. Ported to WatTCP by <A
href="mailto:unknown_address">Michael Ringe</A></TD></TR>
<TR vAlign=top>
<TD width=100><I>ttcp:</I></TD>
<TD width=600>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 <A
href="mailto:ken_yap@nlc.net.au">Ken Yap</A>. </TD></TR>
<TR vAlign=top>
<TD width=100><I>vrfy:</I></TD>
<TD width=600>Verifies validity of email addresses. Requires <I>MX</I>
host to support the <I>VRFY</I> or <I>EXPN</I> commands. Original version
by <A href="mailto:e07@nikhef.nl">Eric Wassenaar</A>.</TD></TR>
<TR vAlign=top>
<TD width=100><I>wget:</I></TD>
<TD width=600>A very nice utility to retrieve files from servers using
HTTP or FTP. By <A href="mailto:hniksic@srce.hr">Hrvoje
Niksic</A>.</TD></TR></TBODY></TABLE>
<P>If your serious about WatTCP or Watt-32 developement, I strongly advice a
purchase of the <I>WATTCP Programmers Manual</I> available <A
href="http://www.wattcp.com/docs.shtml">here</A>. </P>
<P>Comments, Watt-32 bug-fixes and contributions are welcome.<BR>E-mail <A
href="mailto:giva@bgnett.no">giva@bgnett.no</A> for comments or preferably join
the Watt-32 <A href="mailto:watt-32@egroups.com">mailing list</A> at URL
below.</P>
<P>Watt-32 <I>change.log</I> file is <A
href="http://www.bgnett.no/~giva/change.log">here</A>. </P>
<P>You are visitor number <IMG height=19 src="Watt-32 Homepage.files/Count.gif"
width=60> since Feb 9 1999. <IMG height=36
src="Watt-32 Homepage.files/join.gif" width=100 border=1> <A
href="http://groups.yahoo.com/group/watt-32/join">Subscribe</A> to the Watt-32
mailing list. </P></BODY></HTML>
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -