When I follow the amazon link, I am also drawn to the reviews in there. Beside very good comments, there also seems to be one disturbing comment. What is your view on this. (I appreciate the fact that this probably deals with an earlier print)
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.
swimming certificate (A & B), shoelaces diploma, and some useless java ones.
This review has bugged me for a while, so thanks for the opportunity to respond.
I know what the reviewer is referring to in PortScanner and LocalPortScanner. Both of those programs effectively grab every available port on a system, which is a very bad idea. That's only done because at this point in the book I haven't yet introduced the close() methods. In both cases, that shows up a few pages later, and I there explain why these first versions of the program are bad, and show how to fix them. I guess the reviewer just didn't read ahead.
Firewalls are only treated in one page because, from the perspective of the application programmer at whom the book is aimed (as opposed to a network administrator) there's just not a lot to say about them. Sun added some new classes representing proxy servers in Java 1.5, though, so I've expanded the coverage in the latest edition. Ditto for multi-homing.
The rest of it, I'm not sure what to say. The claim that I don't address the role of TTLs in multicasting is just flat out wrong. I'm not sure exactly what his complaints are about "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." I really wish Amazon provided some way for authors to communicate with reviewers so I could get more details about the problems. I do like to hear from people who find mistakes in my books. Unfortunately an effectively anonymous Amazon review does not really provide enough information to determine if there are real problems or not, and address them if there are.
Elliotte Rusty Harold<br />Author of <a href="http://cafe.elharo.com/web/refactoring-html/" target="_blank" rel="nofollow">Refactoring HTML</a>
Acetylsalicylic acid is aspirin. This could be handy too:
a bit of art, as a gift, the permaculture playing cards