Product Description
Java Network Programming, 2nd Edition, is a complete introduction to developing network programs (both applets and applications) using Java, covering everything from Networking fundamentals to remote method invocation (RMI). It includes chapters on TCP and UDP sockets, multicasting protocol and content handlers, and servlets. This second edition also includes coverage of Java 1.1, 1.2 and 1.3. New chapters cover multithreaded network programming, I/O, HTML parsing and display, the Java Mail API, the Java Secure Sockets Extension, and more.
Product Details
* Amazon Sales Rank: #198411 in Books
* Published on: 2000-08-22
* Original language: English
* Number of items: 1
* Binding: Paperback
* 760 pages
Editorial Reviews
Amazon.com Review
Does this sound familiar? You know Java well enough to write standalone applets and applications, even multithreaded ones, but you know next to nothing about the language's networking capabilities. And guess what--your next job is to write a network-centric Java program. Java Network Programming serves as an excellent introduction to network communications generally and in Java. The book opens with information on network architectures and protocols and the security restrictions placed on applets. Quickly, the author gets to the meat of networked Java with a complete elucidation of the InetAddress class, the URL-related classes, applet-specific networking methods, and sockets. The author also covers packets, Remote Method Invocation (RMI), and servlets.
The one serious shortcoming of this book is that it does not include a companion disk, which is the case with most O'Reilly books. You'll have to visit the publisher's FTP site for the code if you dislike typing the examples manually. On the whole, though, this is an excellent tutorial that will guide you through the world of Java networking as smoothly as possible.
From the Publisher
The network is the soul of Java. Most of what is new and exciting about Java centers around the potential for new kinds of dynamic, networked applications. Java Network Programming describes the java.net package, which contains classes for communications and working with networked resources. It is a complete introduction to developing network programs (both applets and applications) using Java, covering everything from networking fundamentals to remote method invocation (RMI). Whether you're an experienced network programmer, or just want to see what's possible, you'll find Java Network Programming is a thorough guide to Java's networking potential. It covers Java 1.1, contains many complete programs (available online), and covers all aspects of basic network programming. You'll find chapters on TCP and UDP sockets, multicasting protocol and content handlers, and servlets, part of the new Server API. It also covers what you can do without explicitly writing newtork code: how you can accomplish your goals using URLs and the basic capabilities of applets.
Customer Reviews
Good reference, mediocre otherwise.3
I've noticed that most reviews (both positive and negative) are a bit out-dated, referring to older editions. This review is about the latest (third) edition, which is also somewhat outdated (2004).
My biggest complaint is that the book is basically a glorified API with some very boring examples. Each chapter explains the methods and constructors of a certain class then throws them together in a sample program.
In my opinion, the book should have included more ideas and concepts and logic used in networking. It doesn't really discuss how networking relates to most of the things any given programmer would like to do. The book's cover and description leads you to believe otherwise, to believe it's more than a strict reference. Unfortunately, it isn't.
Another complaint is that the book is a terribly dry read and almost completely devoid of illustrations. This makes things terribly confusing when discussing things that might be new to you such as sockets.
It's not a bad book overall, it's just bad at some things. Admittedly, a great desk reference, and no one can deny that the API docs can be cryptic at times.
Bottom Line:
Good reference, mediocre instruction. Nice to have but might not be enough.
An excellent and thorough treatment of networking in Java5
This book begins with three chapters that outline how networks and network programs work. Chapter 1 is a gentle introduction to network programming in Java and explores some of the unique programs that become feasible when networking is combined with Java. Chapters 2 and 3 explain in detail what a programmer needs to know about how the Internet and the Web work. Chapter 2 describes the protocols that underlie the Internet, such as TCP/IP and UDP/IP. Chapter 3 describes the standards that underlie the Web, such as HTTP, HTML, and REST.
The next two chapters discuss two parts of Java programming that are critical to almost all network programs but are often misunderstood and misused - I/O and threading. Chapter 4 explores Java's classic I/O models which, despite the new I/O APIs, are still the preferred means of handling I/O in most client applications. Understanding how Java handles I/O in the general case is a prerequisite for understanding the special case of how Java handles network I/O. Chapter 5, explores multithreading and synchronization, with a special emphasis on how they can be used for asynchronous I/O and network servers. Chapter 6 shows how Java programs interact with the domain name system through the InetAddress class, the one class that's needed by essentially all network programs.
Chapter 7 explores Java's URL class, which enables you to connect to and download files and documents from a network server without concerning yourself with the details of the server's protocol. It lets you connect to an FTP server using the same code you use to talk to an HTTP server or to read a file on the local hard disk. Chapter 8 introduces some little known classes for parsing and rendering HTML documents that make this task easy.
Chapters 9 through 11 discuss Java's low-level socket classes for network access. Chapter 9 introduces the Java sockets API and the Socket class in particular. It shows how to write network clients that interact with TCP servers of all kinds including whois and HTTP. Chapter 10 shows how to use the ServerSocket class to write servers for these and other protocols in Java. Chapter 11 shows how to protect your client server communications using the Secure Sockets Layer (SSL) and the Java Secure Sockets Extension (JSSE).
Chapter 12 covers the I/O APIs that were introduced in Java 1.4. These APIs were specifically designed for network servers. They enable a program to figure out whether a connection is ready before it tries to read from or write to the socket. This allows a single thread to manage many different connections simultaneously, thereby placing much less load on the virtual machine. These APIs primarily provide huge performance boosts for high volume servers. Chapter 13 introduces the User Datagram Protocol (UDP) and the associated DatagramPacket and DatagramSocket classes, and Chapter 14 shows how to use UDP to communicate with multiple hosts simultaneously.
Chapters 15 through 17 look more deeply at the infrastructure supporting the URL class. These chapters introduce protocol and content handlers, concepts unique to Java that make it possible to write dynamically extensible software that automatically understands new protocols and media types. Chapter 15 describes the class that serves as the engine for the URL class of Chapter 7. It shows how to take advantage of this class through its public API. Chapter 16 also focuses on the URLConnection class, but from a different direction; it shows how to subclass this class to create handlers for new protocols and URLs. Finally, Chapter 17 explores Java's mechanism for supporting new media types.
Chapter 18 introduces RMI, which enables distributed Java applications to run across multiple heterogeneous systems simultaneously, while communicating with straightforward method calls just like a nondistributed program. Chapter 19 discusses JavaMail, which is an alternative to low-level sockets for talking to SMTP, POP, IMAP, and other email servers.
This book assumes you are an experienced Java programmer. Thus, you should be comfortable with basic AWT and Swing programming, since some of the code examples use these APIs. It is assumed that you know the basics of computer networking - how to use the Internet, what a URL is, how to FTP files, and write simple HTML. However, it assumes no prior experience with network programming. I found the book to be complete and in-depth. The code examples are plentiful, non-trivial, and well commented. I would recommend it not only as a tutorial in Java network programming but as a reference for someone who already knows the subject.
good reference4
I bought it to prepare my class
It was a good reference to me