
Network Programming with Go
Jan Newmarch, Ronald Petty
- Editorial
- Apress
- Año
- 2017
- Páginas
- ~274
- Nivel
- Intermedio
De qué trata
Guía práctica y formativa orientada a la programación de redes y sistemas distribuidos utilizando el lenguaje Go (Golang). El libro está concebido para desarrolladores de software con conocimientos básicos a intermedios de Go (sintaxis elemental, estructuras, tipos y uso básico de goroutines) que quieran comprender a fondo cómo interactúan los sistemas a través de la red, abarcando desde las capas de transporte de bajo nivel hasta servicios web y protocolos de aplicación contemporáneos.
El recorrido formativo parte de los conceptos del modelo OSI y la pila TCP/IP, para luego profundizar en el paquete estándar net de Go, abordando interfaces de red, resolución de nombres DNS, máscaras y sockets de flujo (TCP) y datagramas (UDP). Enseña técnicas de serialización y empaquetado de datos mediante formatos como JSON, XML, el formato binario nativo gob y Protocol Buffers, así como la gestión adecuada de juegos de caracteres UTF-8. En las capas superiores, profundiza en el uso de net/http para la construcción de clientes y servidores web, generación dinámica con html/template y text/template, seguridad y cifrado mediante TLS/HTTPS con certificados X.509, llamadas a procedimientos remotos con net/rpc y JSON-RPC, y el uso de canales de red.
El texto sigue un enfoque estructurado en torno a ejemplos funcionales y proyectos prácticos que el lector puede ejecutar y modificar directamente, como servidores de eco, servicios de sincronización horaria o un servidor web modular con soporte para servicios de consulta. No contiene tareas ni ejercicios académicos al final de los temas, pero su virtud principal consiste en enseñar cómo resolver problemas de red utilizando la biblioteca estándar y el modelo de concurrencia nativo de Go sin sobrecargar la solución con dependencias externas. Conviene tener familiaridad con la terminal de comandos y fundamentos de redes cliente-servidor.
- Go (Golang)
- Sockets TCP y UDP
- Paquete net
- net/http
- Serialización (JSON, GOB, Protobuf)
- TLS / HTTPS
- RPC y JSON-RPC
- html/template
- Resolución DNS
- Concurrencia con Goroutines
¿Cómo enseña?
Teoría + práctica
- ✗ Sin ejercicios
- ✓ Incluye proyectos
Proyectos
Servidores y clientes de sockets concurrentes (Daytime y Echo)
Implementación de clientes y servidores de prueba sobre TCP y UDP utilizando el paquete net para la consulta horaria y la transmisión concurrente de mensajes.
Servidor web completo con contenido dinámico y servicios
Aplicación de servidor HTTP desarrollada con net/http y plantillas dinámicas que despacha archivos estáticos y ofrece un diccionario de términos y tarjetas de estudio (flashcards).
Servicio de llamada a procedimientos remotos (RPC y JSON-RPC)
Arquitectura cliente-servidor para invocación remota de métodos a través de TCP y HTTP utilizando el paquete rpc de Go y serialización estructurada.

