Java Network Programming by Elliotte Rusty Harold Here are the changes made in the 6/99 reprint: (45) Table 3-2, line -6: "serve.class" now reads "serve .class" (71) In para. 3, line 3: "Factory" in "InetAddressFactory" is now in constant-width font. {73} 1st code, line 7: "in dotted quad format" now appears within a comment block. {99} Code line 15 used to read: URL root = new URL(args[0]) It now reads URL root = new URL(args[i]) {99} The code line 20 used to read: System.err.println(args[0] + " is not a parseable URL") It now reads: System.err.println(args[i] + " is not a parseable URL") {100} In line 21: "finally" is now in a comment. (113) Para. 5, last line: added a thinspace after "logo.gif" (116) Para. 3, last line: "sounds" is now in italics (130) 1st line of text: "You use these constants are used" now reads "These constants are used" {148} The second to last paragraph now reads: The Multihome applet redirects requests for http://www.siteA.com/somedirectory/somefile.html to requests for http://www.siteA.com/www.siteA.com/somedirectory/somefile.html, requests for http://www.siteB.com/somedirectory/somefile.html to requests for http://www.siteB.com/www.siteB.com/somedirectory/somefile.html, and so on. (156) In the next-to-last para.: "IOException" is now in constant-width (158) 1st para., line 2: "when" is in Garamond font. (164) Para. 1, line 2: "You use the hostname is to create" now reads "You use the hostname to create" {166} Example 7-7 used to read theSocket = new Socket(host, i) It now reads: theSocket = new Socket(theAddress, i) (167) Para. 4, line 4: added a space between "java.net" and "package" {168} Changed if (!s.getTcpNoDelay()) s.setTcpNoDelay() to if (!s.getTcpNoDelay()) s.setTcpNoDelay(true) {169} First code fragment used to read: if (s.getTcpNoLinger() != -1) ...... It now reads: s.getSoLinger {169} Changed s.setSoLinger(240) to s.setSoLinger(true, 240) {193} Changed both occurrences of InterruptedException to InterruptedIOException {199} In Example 8-5, changed String thisLine; to String thisLine = ""; {226} In the code, changed to order of the lines try{ DatagramPacket dp = new DatagramPacket(buffer, buffer.length); It now reads: DatagramPacket dp = new DatagramPacket(buffer, buffer.length); try{ (234) 2nd paragraph, 1st sentence, changed "may be overridden" to "may be accessed" (234) 2nd paragraph, 4th sentence, changed "Subclasses override this field with" to "Subclasses change this field to" (236) In Example 9-11, changed protected static int defaultPort = 13; to static { defaultPort = 13; } (236) Changed "can be overridden by subclasses" to "can be changed by subclasses" (248) In para 1 (after code), line 1: "as Example 5-5" should be "as Example 5-6". {284} In list item number 3, changed the first "protocol": sun.net.www.protocol.protocol.Handler It is no longer in italics. (315) Para. 3, line 5: "Image" now reads "IMAGE" (330) Para. 2, line 1: "Asssigned" now reads "Assigned" {336} Figure 13-3: The labels "without Multicast Sockets" and "with Multicast Sockets" were reversed. "withMulticast Sockets" is now over the left half of the picture. {343} In Example 13-3, moved the line DatagramPacket dp = new DatagramPacket(buffer, buffer.length); Immediately after while (true) {; i.e. Now reads: while (true) { DatagramPacket dp = new DatagramPacket(buffer, buffer.length); (344) In the footnote: "InetAddress Factory" now reads "InetAddressFactory" {350} Table 14-1: java.awt.Image is not Serializable. Moved it from the left hand column to the right-hand column. {352} In Fig 14-1, the "Skeleton" block under the client program has been changed to "Stub". (356) In line -3: "Hello, world!" now reads "Hello, World!" {359} Paragraph 4: Deleted the phrase ", just as the server did". (364) Line 2: "System.setSecurityManager" changed the font on the first "S" {369} The second sentence in the section "The LocateRegistry Class" "This is achieved with four polymorphic versions the static getRegistry()method." Now reads "This is achieved with four overloaded versions of the static getRegistry() method." (378) 2nd bullet item, last line: "mangers" now reads "managers" {380} Changed "a polymorphic version" to "an overloaded version" (380) In item #6: "vresponse" now reads "response" (380) Para. 3, line -3: changed the font on "service" to CW (404) 2nd line from the bottom: "IOEXception" now reads "IOException" {404} 2nd text para.: "writeErrorResponse" now reads "sendError" (413) In the Index, item "getContentType", subitem "servletRequestI interface)" - deleted parenthesis (414) Item "IANA", deleted page 29 listing (417) Item "opening", subitem "URLConection" now reads "URLConnection" (418) Item "REGISTRY_PORT field, 368" now reads "REGISTRY_PORT field, 369" (420) Item "TCP_DELAY" now reads "TCP_NODELAY"