Synopses & Reviews
T h e n e w t h i r d e d i t i o n o f t h i s h i g h l y r e g a r d e d i n t r o d u c t i o n t o J a v a n e t w o r k i n g p r o g r a m m i n g h a s b e e n t h o r o u g h l y r e v i s e d t o c o v e r a l l t h e 1 0 0 + s i g n i f i c a n t u p d a t e s t o J a v a D e v e l o p e r s K i t ( J D K ) 1 . 5 . I t i s a c o m p l e t e i n t r o d u c t i o n t o d e v e l o p i n g s o p h i s t i c a t e d n e t w o r k p r o g r a m s ( b o t h a p p l e t s a n d a p p l i c a t i o n s ) u s i n g J a v a, c o v e r i n g e v e r y t h i n g f r o m n e t w o r k i n g f u n d a m e n t a l s t o r e m o t e m e t h o d i n v o c a t i o n ( R M I ) . I t i n c l u d e s c h a p t e r s o n T C P a n d U D P s o c k e t s, m u l t i c a s t i n g p r o t o c o l a n d c o n t e n t h a n d l e r s, a n d s e r v l e t s . T h e r e' s a l s o s i g n i f i c a n t i n f o r m a t i o n o n t h e N e w I / O A P I t h a t w a s d e v e l o p e d i n l a r g e p a r t b e c a u s e o f t h e n e e d s o f n e t w o r k p r o g r a m m e r s . J a v a N e t w o r k P r o g r a m m i n g i s t h e e s s e n t i a l r e s o u r c e f o r a n y s e r i o u s J a v a d e v e l o p e r .
The new third edition of this highly regarded introduction to Java networking programming has been thoroughly revised to cover all of the 100+ significant updates to Java Developers Kit (JDK) 1.5. It is a clear, complete introduction to developing network programs (both applets and applications) using Java, covering everything from networking fundamentals to remote method invocation (RMI).Java Network Programming, 3rd Edition includes chapters on TCP and UDP sockets, multicasting protocol and content handlers, servlets, multithreaded network programming, I/O, HTML parsing and display, the Java Mail API, and the Java Secure Sockets Extension. There's also significant information on the New I/O API that was developed in large part because of the needs of network programmers.This invaluable book is a complete, single source guide to writing sophisticated network applications. Packed with useful examples, it is the essential resource for any serious Java developer.
About the Author
Elliotte Rusty Harold is originally from New Orleans to which he returns periodically in search of a decent bowl of gumbo. However, he currently resides in the University Town Center neighborhood of Irvine with his wife Beth, dog Shayna, and cats Charm (named after the quark) and Marjorie (named after his mother-in-law). He's an adjunct professor of computer science at Polytechnic University where he teaches Java, XML, and object oriented programming. He's a frequent speaker at industry conferences including Software Development, Dr. Dobb's Architecure & Design World, SD Best Practices, Extreme Markup Languages, and too many user groups to count. His open source projects include the XOM Library for processing XML with Java and the Amateur media player.
Table of Contents
Preface; About the Third Edition; Organization of the Book; Who You Are; Java Versions; About the Examples; Conventions Used in This Book; Request for Comments; Comments and Questions; Acknowledgments; Chapter 1: Why Networked Java?; 1.1 What Can a Network Program Do?; 1.2 Security; 1.3 But Wait! There's More!; Chapter 2: Basic Network Concepts; 2.1 Networks; 2.2 The Layers of a Network; 2.3 IP, TCP, and UDP; 2.4 The Internet; 2.5 The Client/Server Model; 2.6 Internet Standards; Chapter 3: Basic Web Concepts; 3.1 URIs; 3.2 HTML, SGML, and XML; 3.3 HTTP; 3.4 MIME Media Types; 3.5 Server-Side Programs; Chapter 4: Streams; 4.1 Output Streams; 4.2 Input Streams; 4.3 Filter Streams; 4.4 Readers and Writers; Chapter 5: Threads; 5.1 Running Threads; 5.2 Returning Information from a Thread; 5.3 Synchronization; 5.4 Deadlock; 5.5 Thread Scheduling; 5.6 Thread Pools; Chapter 6: Looking Up Internet Addresses; 6.1 The InetAddress Class; 6.2 Inet4Address and Inet6Address; 6.3 The NetworkInterface Class; 6.4 Some Useful Programs; Chapter 7: URLs and URIs; 7.1 The URL Class; 7.2 The URLEncoder and URLDecoder Classes; 7.3 The URI Class; 7.4 Proxies; 7.5 Communicating with Server-Side Programs Through GET; 7.6 Accessing Password-Protected Sites; Chapter 8: HTML in Swing; 8.1 HTML on Components; 8.2 JEditorPane; 8.3 Parsing HTML; 8.4 Cookies; Chapter 9: Sockets for Clients; 9.1 Socket Basics; 9.2 Investigating Protocols with Telnet; 9.3 The Socket Class; 9.4 Socket Exceptions; 9.5 Socket Addresses; 9.6 Examples; Chapter 10: Sockets for Servers; 10.1 The ServerSocket Class; 10.2 Some Useful Servers; Chapter 11: Secure Sockets; 11.1 Secure Communications; 11.2 Creating Secure Client Sockets; 11.3 Methods of the SSLSocket Class; 11.4 Creating Secure Server Sockets; 11.5 Methods of the SSLServerSocket Class; Chapter 12: Non-Blocking I/O; 12.1 An Example Client; 12.2 An Example Server; 12.3 Buffers; 12.4 Channels; 12.5 Readiness Selection; Chapter 13: UDP Datagrams and Sockets; 13.1 The UDP Protocol; 13.2 The DatagramPacket Class; 13.3 The DatagramSocket Class; 13.4 Some Useful Applications; 13.5 DatagramChannel; Chapter 14: Multicast Sockets; 14.1 What Is a Multicast Socket?; 14.2 Working with Multicast Sockets; 14.3 Two Simple Examples; Chapter 15: URLConnections; 15.1 Opening URLConnections; 15.2 Reading Data from a Server; 15.3 Reading the Header; 15.4 Configuring the Connection; 15.5 Configuring the Client Request HTTP Header; 15.6 Writing Data to a Server; 15.7 Content Handlers; 15.8 The Object Methods; 15.9 Security Considerations for URLConnections; 15.10 Guessing MIME Content Types; 15.11 HttpURLConnection; 15.12 Caches; 15.13 JarURLConnection; Chapter 16: Protocol Handlers; 16.1 What Is a Protocol Handler?; 16.2 The URLStreamHandler Class; 16.3 Writing a Protocol Handler; 16.4 More Protocol Handler Examples and Techniques; 16.5 The URLStreamHandlerFactory Interface; Chapter 17: Content Handlers; 17.1 What Is a Content Handler?; 17.2 The ContentHandler Class; 17.3 The ContentHandlerFactory Interface; 17.4 A Content Handler for the FITS Image Format; Chapter 18: Remote Method Invocation; 18.1 What Is Remote Method Invocation?; 18.2 Implementation; 18.3 Loading Classes at Runtime; 18.4 The java.rmi Package; 18.5 The java.rmi.registry Package; 18.6 The java.rmi.server Package; Chapter 19: The JavaMail API; 19.1 What Is the JavaMail API?; 19.2 Sending Email; 19.3 Receiving Mail; 19.4 Password Authentication; 19.5 Addresses; 19.6 The URLName Class; 19.7 The Message Class; 19.8 The Part Interface; 19.9 Multipart Messages and File Attachments; 19.10 MIME Messages; 19.11 Folders; Colophon;