ACCU Home page ACCU Conference Page
Search Contact us ACCU at Flickr ACCU at GitHib ACCU at Facebook ACCU at Linked-in ACCU at Twitter Skip Navigation

Search in Book Reviews

The ACCU passes on review copies of computer books to its members for them to review. The result is a large, high quality collection of book reviews by programmers, for programmers. Currently there are 1949 reviews in the database and more every month.
Search is a simple string search in either book title or book author. The full text search is a search of the text of the review.
    View all alphabetically
Network Programming with Microsoft Visual J++ 6.0
Andy Wilson
1 57231 855 4
Microsoft Press
Ian Bolland
Appeared in:
Too many Java books simply consist of a rehash of the JDK class documentation. They describe each of the methods, the arguments, return values and exceptions. If you are lucky you may get a few code fragments, or even a trivial application, to show how the methods are used.

This one takes a different approach. It is based around a set of a dozen small-to-medium sized example programs. Each section starts with a small dose of theory, followed by the code listings and an explanation of how the code works. The programs include:

  • a peer-to-peer UDP Chat program;
  • TCP file transfer program;
  • a user list server (similar to finger) which adds application- level reliability to raw UDP;
  • an SMTP client;
  • a TCP proxy server;
  • an ICMP analyser, which uses (Microsoft-specific) methods to interface with native socket code.
The book concentrates on low-level socket programming using UDP, TCP and ICMP. There is no mention of URLs, HTTP, protocol or content handlers, nor of higher-level techniques such as RMI or DCOM.

The code listings (which exclude the UI) range in size from 2 to 20 pages; they occupy about a third of the book. The complete code (including UI) is included on CD, together with a 90-day trial copy of Visual J++. The code is generally easy to read, but is obviously sample code rather than production-quality. Like much sample Java code it 'handles' unexpected errors simply by calling System.out.println and then ignoring them. It would be instructive to take one of the simpler examples and develop it to include robust error handling.

Although I liked the approach of teaching network programming by example, I found the author's explanations of TCP/IP principles hard to follow. He introduces too many advanced concepts too early and without sufficient explanation. If you have a background in network programming you can usually work out what he means, but if not you could easily become confused. For this reason I don't think that this would be suitable as a first book on network programming; but if you have already mastered an introductory book and are looking for more realistic examples, you could give this one a try.