Synopses & Reviews
Java™ Network Programming and Distributed Computing
is an accessible introduction to the changing face of networking theory, Java™ technology, and the fundamental elements of the Java networking API. With the explosive growth of the Internet, Web applications, and Web services, the majority of todays programs and applications require some form of networking. Because it was created with extensive networking features, the Java programming language is uniquely suited for network programming and distributed computing.
Whether you are a Java devotee who needs a solid working knowledge of network programming or a network programmer needing to apply your existing skills to Java, this how-to guide is the one book you will want to keep close at hand. You will learn the basic concepts involved with networking and the practical application of the skills necessary to be an effective Java network programmer. An accelerated guide to networking API, Java™ Network Programming and Distributed Computing also serves as a comprehensive, example-rich reference.
You will learn to maximize the API structure through in-depth coverage of:
The architecture of the Internet and TCP/IP Javas input/output system How to write to clients and servers using the User Datagram Protocol (UDP) and TCPThe advantages of multi-threaded applications How to implement network protocols and see examples of client/server implementations HTTP and how to write server-side Java applications for the Web Distributed computing technologies such as Remote Method Invocation (RMI) and CORBA How to access e-mail using the extensive and powerful JavaMail™ API
This books coverage of advanced topics such as input/output streaming and multi-threading allows even the most experienced Java developers to sharpen their skills. Java™ Network Programming and Distributed Computing will get you up-to-speed with network programming today; helping you employ innovative techniques in your own software development projects.
The companion Web site, http://www.davidreilly.com/jnpbook, offers downloadable source code, a list of FAQs about Java networking, and useful links to networking resources.
You will learn to maximize the API structure through in-depth coverage of: the architecture of the Internet and TCP/IP; Java's input/output system; how to write to clients and servers using the User Datagram Protocol (UDP) and TCP; the advantages of multi-threaded applications; how to implement network protocols and see examples of client/server implementations; HTTP and how to write server-side Java applications for the Web; Distributed computing technologies such as Remote Method Invocation (RMI) and CORBA; how to access e-mail using the extensive and powerful JavaMail' API. This book's coverage of advanced topics such as input/output streaming and multi-threading allows even the most experienced Java developers to sharpen their skills. "Java' Network Programming and Distributed Computing" will get you up-to-speed with network programming today; helping you employ innovative techniques in your own software development projects.
About the Author
is a Sun™-certified Java programmer and author of the Java Network Programming FAQ. He writes frequently for Java publications and holds a BA in Software Engineering from Bond University, Queensland, Australia. David is also the editor of the Java Coffee Break
Michael Reilly is a software engineer and network programmer working in Brisbane, Australia. He holds a BA in Computer Science from Bond University.
Table of Contents
1. Networking Theory.
What Is a Network?
How Do Networks Communicate?
Communication across Layers.
Advantages of Layering.
Internet Application Protocols.
TCP/IP Protocol Suite Layers.
Security Issues: Firewalls and Proxy Servers.
2. Java Overview.
What Is Java?
The Java Programming Language.
The Java Platform.
The Java Application Program Interface.
Java Networking Considerations.
Applications of Java Network Programming.
Java Language Issues.
3. Internet Addressing.
Local Area Network Addresses.
Internet Protocol Addresses.
Beyond IP Addresses: The Domain Name System.
Internet Addressing with Java.
4. Data Streams.
How Streams Work.
Readers and Writers.
Object Persistence and Object Serialization.
5. User Datagram Protocol.
Listening for UDP Packets.
Sending UDP Packets.
User Datagram Protocol Example.
Building a UDP Client/Server.
Additional Information on UDP.
6. Transmission Control Protocol.
TCP and the Client/Server Paradigm.
TCP Sockets and Java.
Creating a TCP Client.
Creating a TCP Server.
Exception Handling: Socket Specific Exceptions.
7. Multi-threaded Applications.
Multi-threading in Java.
8. Implementing Application Protocols.
Application Protocol Specifications.
Application Protocols Implementation.
9. HyperText Transfer Protocol.
HTTP and Java.
The Common Gateway Interface (CGI).
10. Java Servlets.
How Servlets Work.
Writing a Simple Servlet.
ServletRequest and HttpServletRequest.
ServletResponse and Http Response.
HTTP Session Management in Servlets.
11. Remote Method Invocation (RMI).
How Does Remote Method Invocation Work?
Defining an RMI Service Interface.
Implementing an RMI Service Interface.
Creating Stub and Skeleton Classes.
Creating an RMI Server.
Creating an RMI Client.
Running the RMI System.
Remote Method Invocation Packages and Classes.
Remote Method Invocation Deployment Issues.
Using Remote Method Invocation to Implement Callbacks.
Remote Object Activation.
12. Java IDL and CORBA.
Architectural View of CORBA.
Interface Definition Language (IDL).
From IDL to Java.
Installing the JavaMail API.
Testing the JavaMail Installation.
Working with the JavaMail API.
Advanced Messaging with JavaMail.