You are previewing Java™ Network Programming and Distributed Computing.
O'Reilly logo
Java™ Network Programming and Distributed Computing

Book Description

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 today’s 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

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

The companion Web site,, offers downloadable source code, a list of FAQs about Java networking, and useful links to networking resources.


Table of Contents

  1. Copyright
  4. Networking Theory
    1. What Is a Network?
    2. How Do Networks Communicate?
    3. Communication across Layers
    4. Advantages of Layering
    5. Internet Architecture
    6. Internet Application Protocols
    7. TCP/IP Protocol Suite Layers
    8. Security Issues: Firewalls and Proxy Servers
    9. Summary
  5. Java Overview
    1. What Is Java?
    2. The Java Programming Language
    3. The Java Platform
    4. The Java Application Program Interface
    5. Java Networking Considerations
    6. Applications of Java Network Programming
    7. Java Language Issues
    8. System Properties
    9. Development Tools
    10. Summary
  6. Internet Addressing
    1. Local Area Network Addresses
    2. Internet Protocol Addresses
    3. Beyond IP Addresses: The Domain Name System
    4. Internet Addressing with Java
    5. Summary
  7. Data Streams
    1. Overview
    2. How Streams Work
    3. Filter Streams
    4. Readers and Writers
    5. Object Persistence and Object Serialization
    6. Summary
  8. User Datagram Protocol
    1. Overview
    2. DatagramPacket Class
    3. DatagramSocket Class
    4. Listening for UDP Packets
    5. Sending UDP packets
    6. User Datagram Protocol Example
    7. Building a UDP Client/Server
    8. Additional Information on UDP
    9. Summary
  9. Transmission Control Protocol
    1. Overview
    2. TCP and the Client/Server Paradigm
    3. TCP Sockets and Java
    4. Socket Class
    5. Creating a TCP Client
    6. ServerSocket Class
    7. Creating a TCP Server
    8. Exception Handling: Socket-Specific Exceptions
    9. Summary
  10. Multi-threaded Applications
    1. Overview
    2. Multi-threading in Java
    3. Synchronization
    4. Interthread Communication
    5. Thread Groups
    6. Thread Priorities
    7. Summary
  11. Implementing Application Protocols
    1. Overview
    2. Application Protocol Specifications
    3. Application Protocol Implementation
    4. Summary
  12. HyperText Transfer Protocol
    1. Overview
    2. HTTP and Java
    3. Common Gateway Interface (CGI)
    4. Summary
  13. Java Servlets
    1. Overview
    2. How Servlets Work
    3. Using Servlets
    4. Running Servlets
    5. Writing a Simple Servlet
    6. SingleThreadModel
    7. ServletRequest and HttpServletRequest
    8. ServletResponse and HttpResponse
    9. ServletConfig
    10. ServletContext
    11. Servlet Exceptions
    12. Cookies
    13. HTTP Session Management in Servlets
    14. Summary
  14. Remote Method Invocation (RMI)
    1. Overview
    2. How Does Remote Method Invocation Work?
    3. Defining an RMI Service Interface
    4. Implementing an RMI Service Interface
    5. Creating Stub and Skeleton Classes
    6. Creating an RMI Server
    7. Creating an RMI Client
    8. Running the RMI System
    9. Remote Method Invocation Packages and Classes
    10. Remote Method Invocation Deployment Issues
    11. Using Remote Method Invocation to Implement Callbacks
    12. Remote Object Activation
    13. Summary
  15. Java IDL and CORBA
    1. Overview
    2. Architectural View of CORBA
    3. Interface Definition Language (IDL)
    4. From IDL to Java
    5. Summary
  16. JavaMail
    1. Overview
    2. Installing the JavaMail API
    3. Testing the JavaMail Installation
    4. Working with the JavaMail API
    5. Advanced Messaging with JavaMail
    6. Summary