The files in this archive are the example programs from Chapter 1 of "TCP/IP Illustrated, Volume 3: TCP for Transactions, HTTP, NNTP, and the UNIX Domain Protocols" by W. Richard Stevens (Addison-Wesley, 1996). All the source code files assume tabs stop every 4 columns, not 8. With vi I use ":set tabstop=4". The files with "time" in their name are versions that can be used to time the client-server transactions (used for Figure 1.14 of the text). The three server programs with "time" in their name also allow a command-line option specifying how long they should sleep, to simulate the server processing time. Also notice that these "time" clients have a doubly nested loop: one for the request-reply size and another for the number of iterations. The two T/TCP files with "big" in their name define the request and reply size to exceed one MSS (used for the example in Section 3.6 of the text). *Before* trying to make these programs, do something like cc -c error.c sleepus.c ar -crv libmisc.a error.o sleepus.o ranlib libmisc.a # needed for a BSD-derived system Then change the definitions of CC, CFLAGS, and LIBS in the Makefile, as appropriate for your system. Then you can "make all".