
Java Network Programming, 4th Edition
Elliotte Rusty Harold
- Editorial
- O'Reilly
- Año
- 2013
- Páginas
- ~506
- Nivel
- Básico
De qué trata
Tratado técnico y referente clásico sobre programación de comunicaciones en red en el ecosistema Java (adaptado para Java 7 y principios de Java 8 en su 4.ª edición). Escrito por Elliotte Rusty Harold, está dirigido a programadores Java de nivel básico a intermedio que posean soltura con la sintaxis del lenguaje, la programación orientada a objetos y las colecciones estándar, y deseen aprender a desarrollar aplicaciones interconectadas comprendiendo en detalle los protocolos y las capas de red subyacentes.
La obra cimenta las bases teóricas de la arquitectura de Internet y el flujo de datos mediante la API de I/O de Java (InputStream, OutputStream, streams de filtrado y buffers), junto con los conceptos esenciales de multihilo y concurrencia (Thread, Runnable, pools y ExecutorService). A continuación, enseña a resolver direcciones y nombres de host con InetAddress, y a gestionar recursos en la web mediante las clases URI, URL y URLConnection, prestando especial atención a las particularidades del protocolo HTTP (métodos, cookies, cabeceras y servicios REST). El núcleo del texto examina la programación de sockets cliente y servidor TCP (Socket y ServerSocket), conexiones seguras con SSL/TLS (JSSE), operaciones no bloqueantes de alto rendimiento mediante Java NIO (ByteBuffer, Channels y Selectors), paquetes UDP (DatagramPacket y DatagramSocket) y comunicación por multidifusión con MulticastSocket.
El aprendizaje se articula a través del desarrollo de programas reales de red: herramientas de sondeo, clientes de descarga y rastreo web, servidores de eco concurrentes y un servidor web HTTP completo capaz de despachar archivos y redirecciones. No incluye problemas ni ejercicios teóricos de autoevaluación al final de los capítulos, pero destaca por la solidez y el rigor de su código fuente frente a casos de latencia y saturación. Constituye una base imprescindible para comprender la fontanería de red de la JVM antes de adoptar frameworks de alto nivel como Netty o Spring Boot.
- Java SE
- Sockets TCP (Socket y ServerSocket)
- Java NIO (Channels y Selectors)
- Datagramas UDP
- Multicast (MulticastSocket)
- HTTP y URLConnection
- SSL / TLS (JSSE)
- InetAddress
- Concurrencia (ExecutorService)
- I/O Streams
¿Cómo enseña?
Teoría + práctica
- ✗ Sin ejercicios
- ✓ Incluye proyectos
Proyectos
Servidor web HTTP multihilo
Servidor HTTP desarrollado con ServerSocket y pools de hilos concurrentes, capaz de servir archivos estáticos, responder con cabeceras MIME y gestionar redirecciones.
Servidor y cliente no bloqueante con Java NIO
Implementación de alta concurrencia que multiplexa múltiples canales de conexión sobre un único hilo utilizando selectores, búferes y canales no bloqueantes.
Rastreador y descargador de recursos web
Herramienta cliente desarrollada con URL y URLConnection que analiza y descarga contenidos de Internet, procesando cabeceras de respuesta y cookies.

