万本电子书0元读

万本电子书0元读

顶部广告

Learning Network Programming with Java电子书

售       价:¥

4人正在读 | 0人评论 9.8

作       者:Richard M Reese

出  版  社:Packt Publishing

出版时间:2015-12-22

字       数:187.7万

所属分类: 进口书 > 外文原版书 > 电脑/网络

温馨提示:数字商品不支持退换货,不提供源文件,不支持导出打印

为你推荐

  • 读书简介
  • 目录
  • 累计评论(0条)
  • 读书简介
  • 目录
  • 累计评论(0条)
Harness the hidden power of Java to build network-enabled applications with lower network traffic and faster processes About This BookLearn to deliver superior server-to-server communication through the networking channelsGain expertise of the networking features of your own applications to support various network architectures such as client/server and peer-to-peerExplore the issues that impact scalability, affect security, and allow applications to work in a heterogeneous environmentWho This Book Is ForLearning Network Programming with Java is oriented to developers who wish to use network technologies to enhance the utility of their applications. You should have a working knowledge of Java and an interest in learning the latest in network programming techniques using Java. No prior experience with network development or special software beyond the Java SDK is needed. Upon completion of the book, beginner and experienced developers will be able to use Java to access resources across a network and the Internet.What You Will LearnConnect to other applications using socketsUse channels and buffers to enhance communication between applicationsAccess network services and develop client/server applicationsExplore the critical elements of peer-to-peer applications and current technologies availableUse UDP to perform multicastingAddress scalability through the use of core and advanced threading techniques Incorporate techniques into an application to make it more secure Configure and address interoperability issues to enable your applications to work in a heterogeneous environment In Detail Network-aware applications are becoming more prevalent and play an ever-increasing role in the world today. Connecting and using an Internet-based service is a frequent requirement for many applications. Java provides numerous classes that have evolved over the years to meet evolving network needs. These range from low-level socket and IP-based approaches to those encapsulated in software services. This book explores how Java supports networks, starting with the basics and then advancing to more complex topics. An overview of each relevant network technology is presented followed by detailed examples of how to use Java to support these technologies. We start with the basics of networking and then explore how Java supports the development of client/server and peer-to-peer applications. The NIO packages are examined as well as multitasking and how network applications can address practical issues such as security. A discussion on networking concepts will put many network issues into perspective and let you focus on the appropriate technology for the problem at hand. The examples used will provide a good starting point to develop similar capabilities for many of your network needs. Style and approach Each network technology’s terms and concepts are introduced first. This is followed up with code examples to explain these technologies. Many of the examples are supplemented with alternate Java 8 solutions when appropriate. Knowledge of Java 8 is not necessary but these examples will help you better understand the power of Java 8.
目录展开

Learning Network Programming with Java

Table of Contents

Learning Network Programming with Java

Credits

About the Author

About the Reviewer

www.PacktPub.com

Support files, eBooks, discount offers, and more

Why subscribe?

Free access for Packt account holders

Preface

What this book covers

What you need for this book

Who this book is for

Conventions

Reader feedback

Customer support

Downloading the example code

Downloading the color images of this book

Errata

Piracy

Questions

1. Getting Started with Network Programming

Network addressing using the InetAddress class

NIO support

Using the URLConnection class

Using the URLConnection class with buffers and channels

The client/server architecture

Creating a simple echo server

Creating a simple echo client

Using Java 8 to support the echo server and client

UDP and multicasting

Creating a multicast server

Creating the multicast client

Scalability

Creating a threaded server

Using the threaded server

Security

Creating a SSL server

Creating an SSL client

Generating secure keys

Summary

2. Network Addressing

Networking basics

Understanding network basics

Network architectures and protocols

Using the NetworkInterface class

Getting a MAC address

Getting a specific MAC address

Getting multiple MAC addresses

Network addressing concepts

URL/URI/URN

Using the URI class

Creating URI instances

Splitting apart a URI

Using the URL class

Creating URL instances

Splitting apart a URL

IP addresses and the InetAddress class

Obtaining information about an address

Address scoping issues

Testing reachability

Introducing the Inet4Address

Private addresses in IPv4

IPv4 address types

The Inet4Address class

Special IPv4 addresses

Introducing the Inet6Address class

Private addresses in IPv6

The Inet6Address class

Special IPv6 addresses

Testing for the IP address type

Using IPv4-compatible IPv6 addresses

Controlling network properties

Summary

3. NIO Support for Networking

Java NIO

Introduction to buffers

Using channels with a time server

Creating a time server

Creating a time client

The chat server/client applications

The chat server

The chat client

Server/client interaction

The HelperMethods class

Handling variable length messages

Running the chat server/client application

Handling multiple clients

The parts server

The parts client handler

The parts client

Running the parts client/server

Asynchronous socket channels

Creating the asynchronous server socket channel server

Creating the asynchronous socket channel client

Other buffer operations

Bulk data transfer

Using a view

Using read-only buffers

Controlling socket options

Summary

4. Client/Server Development

The HTTP protocol structure

The nature of HTTP messages

Initial request line format

Header lines

Message body

Client/Server interaction example

Java socket support for HTTP client/server applications

Building a simple HTTP server

Building a simple HTTP client

Client/server development using standard Java classes

Using the HttpURLConnection class

URL encoding

Using the HTTPServer class

Implementing a simple HTTPServer class

Managing response headers

Open source Java HTTP servers

Server configuration

Handling cookies

Summary

5. Peer-to-Peer Networks

P2P functions/characteristics

Applications-based P2P networks

Java support for P2P applications

Distributed hash tables

DHT components

DHT implementations

Using JDHT

Using FreePastry

The FreePastry demonstration

Understanding the FreePastryExample class

Understanding the FreePastryApplication class

Sending a message to a specific node

Summary

6. UDP and Multicasting

Java support for UDP

TCP versus UDP

UDP client/server

The UDP server application

The UDP client application

The UDP client/server in action

Channel support for UDP

The UDP echo server application

The UDP echo client application

The UDP echo client/server in action

UDP multicasting

The UDP multicast server

The UDP multicast client

The UDP multicast client/server in action

UDP multicasting with channels

The UDP channel multicast server

The UDP channel multicast client

The UDP channel multicast client/server in action

UDP streaming

The UDP audio server implementation

The UDP audio client implementation

Summary

7. Network Scalability

Multithreaded server overview

The thread-per-request approach

The thread-per-request server

The thread-per-request client

The thread-per-request applications in action

Thread-per-connection approach

The thread-per-connection server

The thread-per-connection client

The thread-per-connection applications in action

Thread pools

The ThreadPoolExecutor class characteristics

Simple thread pool server

Simple thread pool client

The thread pool client/server in action

Thread pool with Callable

Using a Callable

Using a Future

Using the HttpServer executor

Using a selector

Creating the selector

Registering a channel

Using the selector to support a time client/server

The channel time server

The date and time client application

The date and time server/client in action

Handling network timeouts

Summary

8. Network Security

Security

Secure communication terminology

Encryption basics

Symmetric encryption techniques

Generating a key

Encrypting text using a symmetric key

Decrypting text

Asymmetric encryption techniques

Generating and saving asymmetric keys

Encrypting/decrypting text using an asymmetric key

Saving asymmetric keys to a file

Creating a keystore

Creating and maintaining a keystore with keytool

Keytool command-line arguments

Creating and maintaining a keystore with Java

Symmetric encryption client/server

Symmetric server application

Symmetric client application

Symmetric client/server in action

Asymmetric encryption client/server

Asymmetric server application

Asymmetric client application

Asymmetric client/server in action

TLS/SSL

SSL server

SSL client

SSL client/server in action

Secure hash functions

Summary

9. Network Interoperability

Byte order in Java

Interfacing with other languages

Interfacing with JVM based languages

Interfacing with non-JVM languages

Communication through simple sockets

The Java server

The C# client

The client/server in action

Interoperability through middleware

Creating a RESTful service

Testing the RESTful service

Creating a RESTful client

Summary

Index

累计评论(0条) 0个书友正在讨论这本书 发表评论

发表评论

发表评论,分享你的想法吧!

买过这本书的人还买过

读了这本书的人还在读

回顶部