Preface

Java's growth over the last 10 years has been nothing short of phenomenal. Given Java's rapid rise to prominence and the even more spectacular growth of the Internet, it's a little surprising that network coding in Java is still so mysterious to so many. It doesn't have to be. In fact, writing network programs in Java is quite simple, as this tutorial will show. Readers with previous experience in network coding in a Unix, Windows, or Macintosh environment should be pleasantly surprised at how much easier it is to write equivalent programs in Java. The Java core API includes well-designed interfaces to most network features. Indeed, there is very little app-layer network software you can write in C or C++ that you can't write more easily in Java. Java Network Programming, version 3.0 endeavors to show you how to take advantage of Java's network class library to quickly and easily write programs that accomplish many common networking tasks. Some of these include:

Java is the first language to provide such a powerful cross-platform network library, which handles all these diverse tasks. Java Network Programming exposes the power and sophistication of this library. This tutorial's goal is to enable you to start using Java as a platform for serious network programming. To do so, this tutorial provides a general background in network fundamentals, as well as detailed discussions of Java's facilities for writing network programs. You'll learn how to write Java programs that share data across the Internet for games, collaboration, software updates, file transfer, and more. You'll also get a behind-the-scenes look at HTTP, SMTP, TCP/IP, and the other protocols that support the Internet and the Web. When you finish this tutorial, you'll have the knowledge and the tools to create the next generation of software that takes full advantage of the Internet.