Sí, finalmente terminé de leer este libro.
Como persona que nunca ha tomado un curso de redes informáticas en la universidad, había pensado durante mucho tiempo en aprender ese tema de manera intensiva. Sin embargo, no pude encontrar un curso universitario sólido que esté abierto al público (algo así como la introducción a los algoritmos del MIT). ¡Y muchos de los libros de texto con el prefijo “introducción” dedican cientos de páginas a explicar conceptos de bastante bajo nivel, como algoritmos de enrutamiento o incluso cables físicos que conectan los continentes!
Luego encontré la Guía de programación de redes de Beej que se recomienda con frecuencia en Internet. De un vistazo, me resultó fácil de leer debido a la forma en que el autor explica los conceptos con humor. Pero al mismo tiempo, en comparación con otros libros sobre redes informáticas, este libro contiene muchos ejemplos de código, por lo que pensé que es más adecuado para los programadores que desean practicar la programación de sockets.
Y después de leer todos los capítulos excepto el capítulo 9 (porque es más bien una referencia para un montón de funciones del socket C), me pareció una buena lectura.
El libro comienza con algunos conceptos básicos como IP, puerto y socket. Sin embargo, no profundiza en la introducción de algoritmos muy técnicos o dispositivos físicos utilizados para las comunicaciones de red. Como desarrollador que trabaja diariamente con aplicaciones web, lo encontré más relevante para mi trabajo. Aunque el libro a veces menciona bits y bytes, aún es legible y, por lo general, nunca se realizan operaciones bit a bit mientras se lee el código C en el libro.
Para aquellos que quieran ensuciarse las manos con el código, este libro es para ustedes. Excepto por las partes de descripción general sobre redes de computadoras, la mayoría de las explicaciones del libro vienen con ejemplos de código en C. Esto es particularmente útil para saber cómo ocurren las comunicaciones de red reales dentro de nuestras aplicaciones web. Por ejemplo, la operación de sondeo recorre todos los sockets registrados para comprobar si hay eventos entrantes que gestionar.
Además, los ejemplos no importan ninguna biblioteca externa, por lo que no tienes que lidiar con irritantes problemas de dependencia de terceros.
Este libro es muy bueno como referencia amigable para la programación de sockets y llamadas relevantes al sistema. Sin embargo, no sube ni baja:
Sin embargo, encontré otro buen recurso escrito por el mismo autor: Beej's Guide to Networking Concepts. Parece cubrir muchos conceptos básicos de manera más completa que este libro con muchos ejercicios de codificación. Espero que este libro de “conceptos” llene el vacío del libro de “programación”.
Si no sabes mucho sobre programación en C, este libro puede resultarte abrumador. No explica ningún concepto básico como punteros o conversión de tipos. Aunque no sufrimos un infierno de dependencia como cuando tratamos con CMake, si no sabes mucho sobre C, leer el código seguirá siendo difícil.
Personalmente, estoy de acuerdo con el código C. Sin embargo, el libro podría haber sido más amigable para los principiantes si estuviera escrito en Python, que tiene casi todas las contrapartes de las funciones de socket de C en su biblioteca de sockets. El libro "conceptual" del mismo autor utiliza Python esta vez, por lo que podemos esperar algo de diversión allí.
En general, el libro está lleno de ejemplos de código prácticos que son útiles para comprender una aplicación de red que utiliza llamadas al sistema de socket. Por supuesto, no necesitarás usar estas funciones cuando escribas tu propia aplicación, porque muchos lenguajes admiten sus propios envoltorios para esas funciones de red de sockets de "bajo nivel" (Python tiene bibliotecas como socketserver y http). No obstante, creo que una vez en su carrera como desarrollador debería comprender qué sucede detrás de todas estas comunicaciones altamente abstractas que utilizan HTTPS o websocket. En ese sentido, este libro es una buena lectura y también una buena referencia.
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3