Java network programming - Harold, Elliotte Rusty (O'Reilly, 2014)
This practical guide provides a complete introduction to developing network programs with Java. You'll learn how to use Java's network class library to quickly and easily accomplish common networking tasks such as writing multithreaded servers, encrypting communications, broadcasting to the local network, and posting data to server-side programs. Author Elliotte Rusty Harold provides complete working programs to illustrate the methods and classes he describes. This thoroughly revised fourth edition covers REST, SPDY, asynchronous I/O, and many other recent technologies. Explore protocols that underlie the Internet, such as TCP/IP and UDP/IP. Learn how Java's core I/O API handles network input and output. Discover how the InetAddress class helps Java programs interact with DNS Locate, identify, and download network resources with Java's URI and URL classes. Dive deep into the HTTP protocol, including REST, HTTP headers, and cookies. Write servers and network clients, using Java's low-level socket classes. Manage many connections at the same time with the nonblocking I/O