Maison développement back-end C++ [Critique de livre] Guide de Beej sur la programmation réseau

[Critique de livre] Guide de Beej sur la programmation réseau

Jul 18, 2024 am 10:08 AM

[Book Review] Beej

Intro – de quoi parle ce livre ?

Oui, j'ai enfin fini de lire ce livre.

En tant que personne n'ayant jamais suivi de cours de réseaux informatiques à l'université, j'avais depuis longtemps pensé à apprendre ce sujet de manière intensive. Cependant, je n’ai pas trouvé de cours universitaire solide et ouvert au public (quelque chose comme l’introduction aux algorithmes du MIT). Et de nombreux manuels préfixés « introduction » consacraient des centaines de pages à expliquer des concepts d'assez bas niveau tels que les algorithmes de routage ou même les câbles physiques qui relient les continents !

Ensuite, j'ai trouvé le Guide de programmation réseau de Beej qui est fréquemment recommandé sur Internet. En un coup d’œil, je l’ai trouvé facile à lire grâce à la façon dont l’auteur explique les concepts de manière humoristique. Mais en même temps, comparé à d'autres livres sur les réseaux informatiques, ce livre contient de nombreux exemples de code, j'ai donc pensé qu'il convient davantage aux programmeurs qui souhaitent une pratique pratique de la programmation de sockets.

Et après avoir lu tous les chapitres sauf le chapitre 9 (car il s'agit plutôt d'une référence pour un tas de fonctions de socket C), j'ai trouvé que c'était une bonne lecture.

Bonnes pièces

Introduction conviviale aux concepts techniques

Le livre commence par quelques concepts de base tels que l'IP, le port et le socket. Cependant, il ne va pas plus loin dans l’introduction d’algorithmes très techniques ou de dispositifs physiques utilisés pour les communications réseau. En tant que développeur travaillant quotidiennement avec des applications Web, j'ai trouvé cela plus pertinent pour mon travail. Même si le livre mentionne parfois des bits et des octets, il reste lisible et vous n'effectuez généralement jamais d'opérations au niveau des bits en lisant le code C dans le livre.

De nombreux exemples de code

Pour ceux qui veulent se salir les mains avec le code, ce livre est fait pour vous. À l'exception des parties de présentation générale sur les réseaux informatiques, la plupart des explications du livre sont accompagnées d'exemples de code en C. Ceci est particulièrement utile pour savoir comment les communications réseau réelles se produisent au sein de nos applications Web. Par exemple, l'opération d'interrogation parcourt toutes les sockets enregistrées pour vérifier s'il y a des événements entrants à gérer.

De plus, les exemples n’importent aucune bibliothèque externe, vous n’avez donc pas à faire face à des problèmes de dépendance tiers irritants.

Pièces Soso

Principalement axé sur la programmation des sockets uniquement

Ce livre est une très bonne référence conviviale à la programmation des sockets et aux appels système pertinents. Cependant, il ne va ni « plus haut » ni « plus bas » :

  • "supérieur" : La plupart des applications Web actuelles s'appuient sur le protocole HTTP. Cela aurait pu être mieux si le livre contenait plus d'explications sur cette couche supérieure avec du code en cours d'exécution.
  • "inférieur" : je pense que le livre aurait pu montrer à quoi ressemble un paquet en utilisant des outils tels que Wireshark qui récupère les paquets générés par les exemples. L'introduction de quelques commandes Linux/Unix pour la mise en réseau aurait également pu être utile pour comprendre comment notre code d'application interagit avec le noyau.

Cependant, j'ai trouvé une autre bonne ressource écrite par le même auteur : le Guide de Beej sur les concepts de réseautage. Il semble couvrir de nombreux concepts de base de manière plus complète que ce livre avec de nombreux exercices de codage. J'espère que ce livre « conceptuel » comblera le vide du livre « programmation ».

Déconseillé à ceux qui ne connaissent pas le code C

Si vous ne savez pas grand-chose sur la programmation C, ce livre pourrait être accablant. Il n’explique aucun concept de base tel que les pointeurs ou la conversion de type. Bien que nous ne souffrions pas d’un enfer de dépendance comme lorsque nous traitons avec CMake, si vous ne savez pas grand-chose sur C, la lecture du code serait toujours difficile.

Personnellement, je suis d'accord avec le code C. Cependant, le livre aurait pu être plus convivial pour les débutants s'il avait été écrit en Python, qui possède presque tous les équivalents des fonctions socket du C dans sa bibliothèque de sockets. Le livre "concept" du même auteur utilise Python cette fois, on peut donc s'attendre à du plaisir.

Conclusion

Dans l'ensemble, le livre est rempli d'exemples de code pratiques qui sont utiles pour comprendre une application réseau utilisant des appels système de socket. Bien sûr, vous n'aurez pas vraiment besoin d'utiliser ces fonctions lors de l'écriture de votre propre application, car de nombreux langages prennent en charge leurs propres wrappers pour ces fonctions réseau de socket "de bas niveau" (Python a des bibliothèques comme socketserver et http). Néanmoins, je pense qu'une fois dans votre carrière de développeur, vous devriez comprendre ce qui se passe derrière toutes ces communications hautement abstraites utilisant HTTPS ou websocket. En ce sens, ce livre est une bonne lecture et aussi une bonne référence.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Article chaud

<🎜>: Grow A Garden - Guide de mutation complet
3 Il y a quelques semaines By DDD
<🎜>: Bubble Gum Simulator Infinity - Comment obtenir et utiliser les clés royales
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Nordhold: Système de fusion, expliqué
4 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Mandragora: Whispers of the Witch Tree - Comment déverrouiller le grappin
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1670
14
Tutoriel PHP
1274
29
Tutoriel C#
1256
24
C # vs C: Histoire, évolution et perspectives d'avenir C # vs C: Histoire, évolution et perspectives d'avenir Apr 19, 2025 am 12:07 AM

L'histoire et l'évolution de C # et C sont uniques, et les perspectives d'avenir sont également différentes. 1.C a été inventé par Bjarnestrousstrup en 1983 pour introduire une programmation orientée objet dans le langage C. Son processus d'évolution comprend plusieurs normalisations, telles que C 11, introduisant des mots clés automobiles et des expressions de lambda, C 20 introduisant les concepts et les coroutines, et se concentrera sur les performances et la programmation au niveau du système à l'avenir. 2.C # a été publié par Microsoft en 2000. Combinant les avantages de C et Java, son évolution se concentre sur la simplicité et la productivité. Par exemple, C # 2.0 a introduit les génériques et C # 5.0 a introduit la programmation asynchrone, qui se concentrera sur la productivité et le cloud computing des développeurs à l'avenir.

C # vs C: courbes d'apprentissage et expérience du développeur C # vs C: courbes d'apprentissage et expérience du développeur Apr 18, 2025 am 12:13 AM

Il existe des différences significatives dans les courbes d'apprentissage de l'expérience C # et C et du développeur. 1) La courbe d'apprentissage de C # est relativement plate et convient au développement rapide et aux applications au niveau de l'entreprise. 2) La courbe d'apprentissage de C est raide et convient aux scénarios de contrôle haute performance et de bas niveau.

C et XML: Explorer la relation et le soutien C et XML: Explorer la relation et le soutien Apr 21, 2025 am 12:02 AM

C interagit avec XML via des bibliothèques tierces (telles que TinyXML, PUGIXML, XERCES-C). 1) Utilisez la bibliothèque pour analyser les fichiers XML et les convertir en structures de données propices à C. 2) Lors de la génération de XML, convertissez la structure des données C au format XML. 3) Dans les applications pratiques, le XML est souvent utilisé pour les fichiers de configuration et l'échange de données afin d'améliorer l'efficacité du développement.

Qu'est-ce que l'analyse statique en C? Qu'est-ce que l'analyse statique en C? Apr 28, 2025 pm 09:09 PM

L'application de l'analyse statique en C comprend principalement la découverte de problèmes de gestion de la mémoire, la vérification des erreurs de logique de code et l'amélioration de la sécurité du code. 1) L'analyse statique peut identifier des problèmes tels que les fuites de mémoire, les doubles versions et les pointeurs non initialisés. 2) Il peut détecter les variables inutilisées, le code mort et les contradictions logiques. 3) Les outils d'analyse statique tels que la couverture peuvent détecter le débordement de tampon, le débordement entier et les appels API dangereux pour améliorer la sécurité du code.

Comment utiliser la bibliothèque Chrono en C? Comment utiliser la bibliothèque Chrono en C? Apr 28, 2025 pm 10:18 PM

L'utilisation de la bibliothèque Chrono en C peut vous permettre de contrôler plus précisément les intervalles de temps et de temps. Explorons le charme de cette bibliothèque. La bibliothèque Chrono de C fait partie de la bibliothèque standard, qui fournit une façon moderne de gérer les intervalles de temps et de temps. Pour les programmeurs qui ont souffert de temps et ctime, Chrono est sans aucun doute une aubaine. Il améliore non seulement la lisibilité et la maintenabilité du code, mais offre également une précision et une flexibilité plus élevées. Commençons par les bases. La bibliothèque Chrono comprend principalement les composants clés suivants: std :: chrono :: system_clock: représente l'horloge système, utilisée pour obtenir l'heure actuelle. std :: chron

Au-delà du battage médiatique: évaluer la pertinence de C aujourd'hui Au-delà du battage médiatique: évaluer la pertinence de C aujourd'hui Apr 14, 2025 am 12:01 AM

C a toujours une pertinence importante dans la programmation moderne. 1) Les capacités de fonctionnement matériel et directes en font le premier choix dans les domaines du développement de jeux, des systèmes intégrés et de l'informatique haute performance. 2) Les paradigmes de programmation riches et les fonctionnalités modernes telles que les pointeurs intelligents et la programmation de modèles améliorent sa flexibilité et son efficacité. Bien que la courbe d'apprentissage soit raide, ses capacités puissantes le rendent toujours important dans l'écosystème de programmation d'aujourd'hui.

L'avenir de C: adaptations et innovations L'avenir de C: adaptations et innovations Apr 27, 2025 am 12:25 AM

L'avenir de C se concentrera sur l'informatique parallèle, la sécurité, la modularisation et l'apprentissage AI / Machine: 1) L'informatique parallèle sera améliorée par des fonctionnalités telles que les coroutines; 2) La sécurité sera améliorée par le biais de mécanismes de vérification et de gestion de la mémoire plus stricts; 3) La modulation simplifiera l'organisation et la compilation du code; 4) L'IA et l'apprentissage automatique inviteront C à s'adapter à de nouveaux besoins, tels que l'informatique numérique et le support de programmation GPU.

C: Est-ce que je meure ou est simplement en évolution? C: Est-ce que je meure ou est simplement en évolution? Apr 24, 2025 am 12:13 AM

C isnotdying; il se révolte.1) C reste réévèreurtoitSversatity et effecciation en termes

See all articles