» » Java Network Programming

Download Java Network Programming epub

by Elliotte Rusty Harold

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 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.

Download Java Network Programming epub
ISBN: 1565922271
ISBN13: 978-1565922273
Category: Technology
Subcategory: Networking & Cloud Computing
Author: Elliotte Rusty Harold
Language: English
Publisher: O'Reilly Media; 1 edition (January 11, 1997)
Pages: 442 pages
ePUB size: 1548 kb
FB2 size: 1411 kb
Rating: 4.9
Votes: 620
Other Formats: docx lrf doc lit

This book starts out slow, but introduces the networking concepts necessary to properly understanding Network Programming in Java. The author does an excellent job at teaching other necessary concepts for network programming such as Threads and I/O Streams. I feel I've benefitted greatly from this book in all aspects of Java programming, and I understand Java concurrency much better. Highly recommended and still relevant in 2012, although changes to Java introduced in Java 6 and Java 7 are not covered. However, in my experience the bulk of the API is still the same.
grand star
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.
Technically I would rate this book 4.5 if I could. This book explains some of the concepts quite nicely, and the main advantage is that it has lots of coding examples, which really helped me a lot when I was studying. However, if you want to have a full understanding of how to make distributed systems (per example, like in my case) or how to use this knowledge in some other way you'll need another book to complement this.

The coding examples are all well explained and are always complete - something I totally appreciate. However, some of the coding techniques could be rather simplified and I feel the book doesn't provide enough bibliography to help you expand more.

This is a great book to introduce you into the world of java networking, but if you want to get to the top, you'll eventually need more. It's, IMO, a good book for starters that I recommend to everyone.
come with no dirt and scratch... cover all objest programming for networking purposes. i used to teach in my classroom... thx amazon
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.
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.