Je suis Charlie

Autres trucs

Accueil

Seulement les RFC

Seulement les fiches de lecture

Ève

Fiche de lecture : Unix network programming

Auteur(s) du livre : W. Richard Stevens
Éditeur : Prentice-Hall
0-13-490012-X
Publié en 1998
Première rédaction de cet article le 5 février 2008
Dernière mise à jour le 6 février 2008


Ce livre est la référence absolue pour la programmation réseau en C sur Unix. Trés détaillé, très concret, avec énormément de code source, il a formé beaucoup de programmeurs réseaux. (Il s'agit du volume 1, le volume 2 étant consacré à la communication entre processus.)

Hélas, il n'y aura plus de livre écrit par W. Richard Stevens, il est décédé en 1999. Mais ses épais ouvrages ont formé des milliers de programmeurs et d'administrateurs réseaux. La seconde édition d'Unix network programming, volume 1, ajoutait notamment la description détaillée de la programmation IPv6, Stevens étant un des auteurs de l'API (RFC 3493). (Le livre a été repris par deux autres auteurs, qui ont publié une troisième édition, que je n'ai pas lue, merci à Damien Wyart pour l'information.)

Unix network programming couvre en près de mille pages l'interface des prises, l'écriture de clients et de serveurs, l'utilisation intelligente d'UDP et de TCP, et d'innombrables services plus avancés comme l'utilisation des options IP. Rien à voir avec le cours de réseau universitaire classique, avec son obligatoire modèle en couches. Ici, tous les programmes ont été testés et le code source est distribué (voir adresse plus haut).

En vrai geek, Stevens a écrit son livre en troff, un art aujourd'hui bien perdu.

Sans doute la plupart des programmeurs n'ont pas besoin d'autant d'informations, il est même peut-être préférable qu'ils programment à niveau plus élevé. Mais celui ou celle qui veut approfondir tous les mystères de la programmation réseau aura toujours intérêt à se plonger dans ce livre.

Version PDF de cette page (mais vous pouvez aussi imprimer depuis votre navigateur, il y a une feuille de style prévue pour cela)

Source XML de cette page (cette page est distribuée sous les termes de la licence GFDL)