As before, our main reason for writing Java Network Programming is to provide you with useful techniques and code for networked applications development in Java.
With the recent updates to the Java platform, its capabilities for networking and distributed computing have expanded significantly. APIs now exist that offer new options for significant applications development.
The primary focus of this book is the fundamental networking technology provided by Java: streams and IP-based protocols such as TCP, UDP, and multicast. In this second edition we have added coverage of new API features relevant to these technologies, while, in addition, improving and extending the examples provided by the first edition to cover these changes and more.
In other areas, updates to the Java platform have introduced new networking capabilities such as RMI, CORBA, and servlets. To provide a good networking foundation in this book, we have added coverage of these important topics to the second edition. Of course, spatial limitations of the printed page limit the depth in which we can cover these specialized networking APIs. As a result we have attempted to introduce these topics sufficiently that you can make an informed choice about what technology to use, and should one catch your fancy, other dedicated books can serve you better than we could hope to.
Finally, with the Java 2 platform, a complete and far-reaching cryptography API has been added to Java's repertoire. Rather than attempting to shoehorn our cryptographic examples from the first edition into this new API, we have completely excised cryptography from this second edition, preferring to cover that in a separate book, Applied Java Cryptography , due out after the Java APIs stabilize.
In short, there was a lot of new stuff that needed coverage, some old stuff that needed revision, and then some other random things that happened to catch our attention. Plus, our publisher put a gun to our head so we didn't have any choice.
We founded our company, Prominence Dot Com, with the commitment to provide clients with advanced Internet-based solutions for business needs. When we first set up shop, the hot new technology for the Internet was the World Wide Web. Applications-oriented Web sites became our first order of business.
We began evaluating Java for Web applications development during its alpha-2 phase, in the summer of 1995. At the time, CGI applications of various sorts represented the cutting edge of Web-based products. It was immediately apparent that Java presented unique and powerful features that enabled "real" distributed applications which could run over any TCP/IP network.
Of course, all of that is ancient history in Internet terms. Slightly more than a year later, Java is hotter than the coffee that inspired its name. In fact, at the time of this writing, the coffee market itself is in a bit of a lull, but Java's popularity continues to surge.
Java's appearance in the right place at the right time with the answers to hard problems is earning it a place in the toolkits of developers worldwide. From a developer's standpoint, Java's cross-platform, secure, object-oriented, and network-centric features make it useful. Its clean syntax makes it fun and relatively easy to use. Most importantly, its status as the only high-level cross-platform language with native Web browser support makes it a must for serious Web- and Internet-oriented development efforts--precisely the sort of efforts that require the use of the secure networking codebase and techniques developed in this book.
Java Network Programming arose out of a set of professional courseware that we developed in response to the widespread need for a comprehensive reference on advanced features of the Java language. This book, therefore, covers everything from the basics of Java networking to in-depth techniques for implementing high-level secure networked applications. It is simultaneously a complete tutorial on networking and cryptography, a Java networking API reference, and a collection of production codebase contained on a companion CD-ROM.
We sincerely hope and believe that the material in this book will be as useful to you as it has been to us. Please give Java Network Programming a good home and dogear it, so that it knows it is loved.