Java Network Programming, Third Edition
Elliotte Rusty Harold


Compras Nikon
Bluetooth
1 Comprehensive reference (3rd Edition)
If you're doing anything with Java and Network I/O programming, the topic will most likely be covered in this book. The author does a great job describing not only how Java handles network programming, but the concepts and details of network programming in general. The book takes the core java.net classes and describes each method, what it does, how to use it, what to watch for, code examples, etc - it takes the API Javadoc and expands upon it.

It's a great Java Network API reference book.
2 In-depth API coverage
The value of this book is in the depth of the coverage it gives to every topic. As opposed to the usual code fragments glued together with the necessary minimum of expository text, this book takes it's time to explain topics in detail. It's clear that in it's third revision the author has learned how to teach the Java network APIs.

Topics covered include both client and server code with sockets and UDP, non-blocking I/O, and protocol and content handlers, as well as many others. This is very in-depth, very well written with effective use of graphics. And better yet you will learn about the protocols themselves as well as the APIs.

This is an outstanding book, easily the best book, on the Java network APIs.
3 An Excellent Choice
I read this book and really enjoyed it. It is easy to read, and has lots of useful code. I like all books written by this author. If you like this book, then you should try his book on JAVA and XML. That book is well written. I would recommend this networking book to anyone who wants to learn JAVA and Networking. Some LAN experience or a networking course will help you. Buy this book -- it is worth an investment!!!
4 Network Programming Book with Few Network Topics...
Java Network Programming is a great topic and very challenging to write about. In the past decade, Client Server and Networking where the most popular topics in the industry.

Initially, Java was not an Internet/Web language oriented. Later versions, the language migrated into a more network oriented and became the language of choice among financial institutions, and others, because of its high productivity capabilities (mainly, shorter development curve.)

Here are a few points that I'd like to make concerning this book:

1. The authors took on themselves a very large assignment, rather than reducing the scope of the book, so they could deal efficiently with the content and represent it in more technical details and depth, just as O'Reilly publication does so often. The variety of topics discussed in the book could be topics for books themselves, such as Web Concepts, Threads, Java I/O...

2. A few topics are not directly affiliated with Networking, such as Threads, Java Mail API, etc. I was surprised to find the "HTML in Swing" chapter, which is a total shift from the Networking Layer to the Presentation Layer.

3. The book is missing important and advanced topics in Networking, such as IIOP, Distributed Objects, EJB and maybe CORBA. I was surprised to find a chapter about RMI - an old form of distributed objects, which was replaced by IIOP and EJB in recent years. RMI was combined with IIOP (RMI/IIOP) because its poor performance. Why would anyone want to study an old topic?

4. This book is lacking of a conceptual discussion about Networking Layers in general, to help users understand why with Java, Network Programming could be a piece of cake... Conceptually speaking, indeed, with Java it's a much easier task.

5. The bright spot here are the samples that are almost in a "copy and paste" condition. They are easy to understand and implement.


5 Misapprehensions and misinformation. Avoid.
Avoid. This book appears to have quite a reputation, but despite being in its 2nd edition, it is riddled with errors. The book exhibits some fundamental misapprehensions about TCP/IP; as a result it perpetrates some astonishing misinformation, much of it quite basic. Partial list: the nature of a socket close operation; what IOException when closing a socket means; what happens when the listen backlog is exceeded; specification of the ServerSocket constructors; Nagle's algorithm (Socket.setTcpNoDelay); linger; keepalive; etc etc.

Of the examples which do work, the PortScanner and LocalPortScanner are provided in versions which perpetrate atrocities on the local machine and network by not closing sockets. Multi-homing very cursorily treated, not even indexed. Firewalls apparently treated in one page. Role of TTL in multicast apparently ignored.

The text is verbose and repetitive, and a number of the examples are irrelevant. Fully 50% of the Sockets for Servers chapter consists of a rather irrelevant excursion into HTTP and HTML; the examples have bugs, not that they have much point. Also, what pray have HTML rendering and parsing in Swing got to do with networking? 30 irrelevant pages on this; nice to have, but why here?

Author seems to think HotSpot is a JIT. Typos in the index, not encouraging. Many impending JDK 1.4 enhancements will shortly obsolete this book. Avoid it. For TCP/IP and UDP fundamentals, buy W.R. Stevens Unix Network Programming. -


6 Misapprehensions and misinformation. Avoid.
Avoid. This book appears to have quite a reputation, but despite being in its 2nd edition, it is riddled with errors. The book exhibits some fundamental misapprehensions about TCP/IP; as a result it perpetrates some astonishing misinformation, much of it quite basic. Partial list: the nature of a socket close operation; what IOException when closing a socket means; what happens when the listen backlog is exceeded; specification of the ServerSocket constructors; Nagle's algorithm (Socket.setTcpNoDelay); linger; keepalive; etc etc.

Of the examples which do work, the PortScanner and LocalPortScanner are provided in versions which perpetrate atrocities on the local machine and network by not closing sockets. Multi-homing very cursorily treated, not even indexed. Firewalls apparently treated in one page. Role of TTL in multicast apparently ignored.

The text is verbose and repetitive, and a number of the examples are irrelevant. Fully 50% of the Sockets for Servers chapter consists of a rather irrelevant excursion into HTTP and HTML; the examples have bugs, not that they have much point. Also, what pray have HTML rendering and parsing in Swing got to do with networking? 30 irrelevant pages on this; nice to have, but why here?

Author seems to think HotSpot is a JIT. Typos in the index, not encouraging. Many impending JDK 1.4 enhancements will shortly obsolete this book. Avoid it. For TCP/IP and UDP fundamentals, buy W.R. Stevens Unix Network Programming. -


7 Very thorough but not very user friendly
Let me start off by saying that the content is very thorough. It covers the topic extremely well, and the examples are good. This book, however, is not for the newcomer to Java. It is assumed that you are fairly familiar with the language, and the examples are not explained very well. The text is also a bit dry. I found it hard to sit down and read.

Dispite the minor issue of user friendliness, this is an excellent reference on the subject of networking, and I recommed it to anyone who knows Java fairly well and wants to expand their horizons.


8 Great Intro to Networking with Java
I love this book. Absolutely love it. One of the great things here is the tie in of network programming with java's IO classes. Networking in Java is IO, and this book explains it upfront.

The overviews of IO and Threading in the first couple of chapters can really solidify these topics if you are sketchy on them. The rest of the book is dedicated to going over the .net classes & explaining each one, providing in depth/useful examples for each.

The appendix of the book give a good enough overview of RMI & JavaMail, more than enough to get you going using either package.

While this is not a book for total beginners, if you need to learn the .net package, or want to take your Java skills to the network, buy this book!


9 Wonderful book, easy and fun to read
If you really want to understand how networking works in Java, buy this book and read it. You will not be disappointed.

The book does an excellent job of documenting how the java.net package works and an even better job of displaying useful examples. Very rarely do I find my self compiling and running code examples given in books. However, with this book I did it routinely because they were just to tempting not to run!

I found the chapters on HTML parsing, Threads, Sockets, JavaMail and RMI to be the most useful.


10 Good
Good, but not great.

Before I read this book I had no clue on how to write a network program. This book does an excellent job of taking you from knowing nothing to being ready to take a crack at it.

Contains two great chapters on i/o and threads that you will need.

However, I thought that it left some obvious questions unanswered. I had the search the net to fill in the gaps. For example, I want to write a telnet enabled application but the book left me in the dark as to when to get the tools to construct one (doing it from scratch is a big waste of time). BTW the tools aren't in the JDK exactly but are available (for free) elsewhere, kindaof like the RE packages are.


11 Too good to pass up...
In regards to the revised edition of the book, it is an excellent one. I found the explanations clear and concise and I was able to apply all the examples I found in creating the tiny prototypes before designing the real application. It is an excellent introduction and grounding in Network Programming. The inclusion of JavaMail is also very helpful and allowed me to complete my program in record time. I hope he gets rich from this one alone!
12 Up to date, complete and thorough
This book covers all the important things to know about network programming in JDK1.3 and Java2. The content and quality is how you expect it from O'Reilly books: thorough, complete, practical with clear examples, and with a good theoretic foundation.

The first three chapters provide theory about basic network and web concept and explains what you can do with Java networking. A lo of very interesting things, and that motivated me to read further. Chapter 4 and 5 are about Java I/O and threads and might be redundant for Java programmers, who already know basic Java stuff. But those chapters are necessary to understand the examples in all the following chapters. Chapter 6-19 deal with all the various networking topics and Java classes that deal with URL's, Internet addresses, sockets and datagrams, protocol and content handlers, RMI and JavaMail. The organization of these last chapters is topical; in most of the times you can understand a chapter without reading the previous ones, just pick out the one that you are interested in. (Interesting chapter about parsing HTML with JEditorPane, Swing has some unexpected applications!)

I think the author gave a complete and thorough coverage of all the necessary topics. The author does not stray from its topics, is sometimes a bit dry in his explanations, and gives some important side information, e.g. about security aspects of the different Java versions in regards to RMI.

Take in mind that this is the second edition from August 2000, updated to Java2, with some 200 or more extra pages, and we can use this book for the next couple of years.


13 An excellent introduction for Network Programming with Java
I really think this is a wonderful book, touches many network subjects, and provides a decent background coverage. I haven't read the previous version whom many of the other reviewers said was outdated, but this book seems very up to date, and discusses the new network capabilities of Java 1.3. To sum it up, I think this book provides an excellent introduction to Java network programming, and will be good to anyone who needs to learn this information.
14 Excellent up-to-date book
This book is currently the only one covering the new features of Java 2 and JDK 1.3 network programming, including very useful information on HTML display and parsing. It is very helpful to me as one who is new to Java but finds tutorials boring.
15 SOLID NETWORK PROGRAMMING INTRODUCTION
This book is pretty complete as far as covering the fundamentals of java network programming is concerned.However, it provides not much more information than what the first edition covered.Most of the chapters seem the same, and some have been re arranged.Manning's book covers more topics,but this book gives better explanation of the concepts like RMI etc.Overall, a good addition to the shelf,but if you already have the first edition of this book, might want to consider Manning's book instead.
16 Good intro to Java network programming
I had a couple years experience with Java, but knew nothing about network programming. I bought this book, and started writing fairly sophisticated network code (chat rooms, online games, web browsing software, etc.) by the time I was halfway through. I wouldn't recommend this book to Java beginners, but I would definitely recommend it to more experienced Java coders who are new to network programming. Since some readers have complained that this book is out of date, I would remind everyone that a new edition is due out in August of 2000. Don't be swayed by anyone who rates this book solely on the basis that it is outdated; just hold out for the second edition.
17 This book is outdated
If you carefully go thru all the reviews , you can make out that the reviews in 1997 give a very positive feedback about the book. But at this point of time this book definetely needs a revision.
18 Poor book to purchase, very out of date
This book is extremely out of date, and has been superceded by the excellent Java Network Programming Second Edition, by Merlin Hughes, and published by Manning.

The author of this book, posted in an earlier review "However the cover of the Manning book has a big fish, and looks suspiciously like an O'Reilly book. Don't be fooled. The real O'Reilly book has a gyroscope on the cover.". I'd have to say to potential readers not to be fooled - buy the original (and now updated) Java Network Programming 2nd Ed.


19 Examples don't work and explanations are poor.
The introduction to the book is good, but that's where the quality ends.

The examples do not compile ( currently code examples on O'Reilly site are unreachable ), so they are useless as quick and dirty sample pieces of code, that can be built upon.

My major problem was that I could never understand what he was actually trying to do, so it was very hard to fix the examples. For example, an example gets the IP address for a www site. It also works for an IP on the local net. But this is not mentioned, and I would love to know why it works.

Also since we are comparing host names, it would be nice to know how to determine if a host name is your localhost. This is never shown. The basic problem is that it is a Java 1.0 book that was never really updated to 1.1. This is obvious because of the amount spent discussing V1.0 issues that don't apply to V1.1.

I will probably struggle with it for a bit more, and then move to something else.

I feel that I could have learnt as much just by reading the class definitions.


20 Basically an annotated javadoc
It's competent, though it is in need of updating. The main problem is that all the book does is go through the API, class by class, method by method. If you are an intermediate programmer you can just read the javadoc and get the same thing. I would have liked some advice on architecture, patterns, etc.
21 sleepping when writing this book
Too many mistakes were made in this book.Not even basic explanation can be seen here.I have read this book 3 times and finally decide to change another book.This writer never takes the side of reader.He should have tested all code with JDK.
22 Pretty good book, but somewhat outdated and some errors
This is a good book about Java networking, but many of the methods have been deprecated by Java Version 1.1. Also, there are a few minor errors in the code that are correctable by debugging (this actually helped me to learn the topic more in depth - I've been e-mailing the corrections). I hope Mr. Harold comes out with a new release updated for JDK1.1 at least.
23 This is a great book.
This book is a bit dated (it's pushing 2 old years now), but not outdated. By that I mean that the basics it covers are still the basics you need, even if the relevant protocols and technologies are constantly expanding. The prose is clear, concise, and instructive. All of the examples are complete (albeit short) working programs. I haven't tried them all, but I have yet to have one fail. This includes running under JDK versions 1.1.3, 1.1.5, 1.1.6, 1.1.7, and 1.2. If an updated version is ever published, I will buy it, too.
24 This book is OUTDATED.
The author generously uses the methods deprecated in Jdk1.1 with a liberal assumption that Jdk1.0.2 is here to stay for a while. The best part is the book was published a while after Jdk1.1 was released. The publishers (O'Reilly) might consider changing the cover picture to a 'dinosaur'.
25 Total waste of time and paper
Contains examples that fail to work. Also the explanations are SO BAD they don't help at all. The API docs contain more information than this ever will. I'd love to like it, but so there. Go for more general books instead.
26 Four Stars!
This was my textbook for a UCSC Extension Java Network Programming class. Harold's approach is to bring someone new into the Java Networking world with ease and work up to some involved programming examples. The coding snippets were very useful, they actually ran and became my starting point in several of my homeworks. RMI has to be expanded more than what it has now. I learned my RMI through the instructor, Mukund Mohan, who was tops!
27 Excellent Book; A must read for java network programming
It has good coverage of all important areas of java networking. Good working examples. Good descriptions of classes. Good reference for developing real internet applications
28 Good explanation of the java.net.* and java.rmi classes
Unfortunately, that's all it is. This book does a great job of explaining this section of the jdk complete with useful and insightful examples. I learned how to use RMI, and the various URL classes painlessly.But when it comes to the existing limitations in the java classes (like non-existing content handlers for some types of data), Mr. Harold simply states that a limitation exists. He does not explain how to create new content handlers, for example. There is no direction or help given in overcoming these limitations. Treatment of Corba and/or COM would also be very useful in a book about Java network programming. Even with these caveats, if you are having trouble getting your head around the java.net classes, then this book does that very well. I haven't seen any other book that explains these classes in depth.
29 Real meat inside
Let's say you want to create a real server software from scratch for many platforms ?... what do you need ? Java, this book, and some work of course.

Forget lost time wandering for clues and wannabe tutorials : update information, exemples, a comprehensive index, all is here.


30 A classic O'Reilly publication - great content and pitch
This book follows in the great tradition of excellence from the O'Reilly stable; as well as having great content, it's very *readable* - and has plenty of examples. Filled a gap in my quest for knowledge perfectly.
31 Thorough and understandable
This book is useful from both the level of explaining fundamental networking concepts and as a reference.

Appropriate for intermediate programmers and up. Clear language. Covers early 1.1 material.


32 The Best Java Networking book currently available
This books fills a niche in the Java book market. Personally, I've been waiting for Stevens to take his "UNIX Network Programming" book and port it to Java. Since that hasn't happened, I looked at this new book with interest.

It does a good job of covering all the network basics and all the networking features of Java. It even includes current topics such as RMI and the Server API. I'd recommend this book to anyone who has never done network programming before and is trying to.


33 Excellent Book - a must have for serious Java programmer
From the basics, throught Multicasting, RMI, and Servlets. Goes into great depths on all topics, TCP/UDP, datagrams, URLs, sockets, you name it..

Monday, 13-Oct-2008 06:27:48 CDT
Quote of the Day:


Man's reach must exceed his grasp, for why else the heavens?

Kindness is the beginning of cruelty.
-- Muad'dib [Frank Herbert, "Dune"]