Optional Reference Book

When I asked for feedback on the textbook in the Spring 2001 ICS 451 class, some people suggested that I provide an optional textbook for sockets programming. This textbook is not required, but several students thought it was very helpful for the projects.

UNIX Network Programming, Volume 1: Networking APIs - Sockets and XTI, by W. Richard Stevens, second edition, Prentice Hall 1998.

I have asked the bookstore to stock this book, though they will probably buy fewer than the number enrolled in the class.

The students have given me permission to quote their comments, and I include them below:

William N Luoma

I would say the Socket book by Stevens, Unix Network Programming Vol1, "second edition", 1998, Prentice Hall and Vol2 Interprocess Communications for that matter. I used about 5 chapters from both. It would be nice if they were combined the like old Unix Network Programming, "first edition", 1992, but I don't know anything about that book except that it is more general.

I also bought the Gnu C Library Reference manual, vol 1 and 2, $60 for both.

The thing about this class is it's most students' first real exposure to using C the way it was meant to be used. I think once the programming happens and you do your first real cast, eg

 inet_ntoa((* (struct in_addr *)&next_hop_ip)));

then it's easier to focus on the protocol and understand it. For me at least. I mean I am now comfortable using void pointers and function pointers and threads and sockets. Much of the "outside" effort in passing this class for me involved getting comfortable with those structures. And all the above mentioned books made my life much easier.

Xin Chen

About the optional book, one of my assignment group member has a Chinese version of that book:

UNIX Network Programming, Volume 1: Networking APIs - Sockets and XTI Edition 2, by W. Richard Stevens

More information can be found at http://www.amazon.com/exec/obidos/ASIN/013490012X/qid=988518299/sr=1-4/ref=sc_b_5/002-5399325-8016008

I think this book is very complete and exlains things in detail. It can be a excellent reference book for a graduate student or a serious programmer as a reference. It's a good reference for a 451 student too but he need to read only very small part of it to reach this course's requirement.

Joshua Kuo

The Richard Stevens book on TCP/IP Illustrated comes with 3 volumes, and are quite expensive ($65 each). I don't think it will make a very good optional text book because they are big/expensive/indepth, and they are probably better reference books.

personally, I suggest the following two:

  1.    Pocket Guide to TCP/IP Socket (C version),
       Author: Michael Donahoo, Kenneth Calvert
       Publisher: Morgan Kaufmann Publishers
       ISBN: 1558606866
       $ 14.95
    
  2.    Effective TCP/IP Programming: 44 Tips to Improve Your Network Programs
       Author: Jon Snader
       Publisher: Addison-Wesley Pub Co.
       ISBN: 0201615894
       $ 34.95
    

I personally think the Pocket Guide book is perfect for the course, it shows the most essential basics of building a network program. And it's cheap enough for the students to purchase and keep.

The complete titles for the Richard Stevens' books are:

  1.    TCP/IP Illustrated, Volume 1 : The Protocols
       ISBN: 0201633469
       ($65.95)
    
  2.    TCP/IP Illustrated, Volume 2 : The Implementation
       ISBM: 020163354X
       ($65.95)
    
  3.    TCP/IP Illustrated, Volume 3 : Tcp for Transactions, Http, Nntp, and
       the Unix Domain Protocols
       ISBN: 0201634953
       ($47.95)
    
  4.    UNIX Network Programming, Volume 1: Networking APIs - Sockets and XTI
       ISBN: 013490012X
       ($68.00)
    
  5.    Advanced Programming in the UNIX Environment
       ISBN: 0201563177
       ($65.95)