2009-07-28 5 views
13

bien que je n'ai pas travaillé avec des prises professionnellement, je les trouve intéressantes. J'ai lu une partie de Unix Network Programming par Richard Stevens (considéré comme étant la Bible, je suppose qu'il est référé par tous ceux que je demande) mais le problème est que les exemples nécessitent un en-tête universel unp.h qui est un PIA à utiliser. Est-ce que certains d'entre vous peuvent suggérer une bonne lecture pour la programmation de socket sous Unix/Linux?Bonnes lectures sur la programmation de socket Unix/Linux?

Considérant que je suis un codeur C/C++ relativement expérimenté.

Répondre

20

La référence canonique est Programmation réseau UNIX par W. Richard Stevens. upn.h est juste un en-tête d'aide, pour rendre les exemples de livres plus clairs - il ne fait rien de particulièrement magique. Pour démarrer et courir très rapidement, il est difficile de passer Beej's Guide To Network Programming using Internet Sockets.

+4

Il a été référé par tout le monde, je suis sûr qu'il y a d'autres bonnes lectures aussi. Essayer ses exemples est un PIA. Le problème que je vois est les en-têtes donnés dans les exemples sont des wrappers pour les fonctions réelles et ce n'est pas comment on apprend l'API. Et le plus important, ils ne compilent pas (au moins sur mon système après de nombreux essais, il a échoué à plusieurs reprises) – rocknroll

+0

Sur quel système Linux travaillez-vous, alors? La page de Beej dit Fedora Core (version 3 IIRC) ... –

12

J'utilisé Beej's Guide to Network Programming

Il y a beaucoup d'exemples de client et le code serveur avec des explications à chaque étape du chemin.

+0

+1: C'est un excellent guide de démarrage rapide. Devrait être beaucoup pour vous faire écrire vos propres applications pilotées par socket aléatoires. – ojrac

1

APUE est un bon moyen de vous familiariser avec l'environnement unix ainsi que la programmation C dans le contexte unix afin que vous puissiez passer à la programmation socket.

+0

@alok Ce livre est déjà mentionné dans la réponse de caf. –

1

Au-delà des livres Stevens déjà mentionnés, je trouve les deux suivants pour être vraiment bon et relativement court lit pour les questions de programmation TCP/IP (en particulier Bogues et erreurs communes):

Après cela, vous voulez probablement lire le code source pour applicati réseau ons. Les divers utilitaires et applications Linux sont un bon point de départ.

1

Vous pouvez référencer le papier que j'ai écrit quand j'ai enseigné le cource informatique de premier cycle, Ordinateur réseau Fundamentals, à ufl.edu depuis longtemps: "A Crash Course In Unix TCP/IP Socket Programming".

Le papier est vieux. Je suis étonné que lorsque je l'ai acheté, il y ait encore une demi-douzaine de références là-bas. Certains éléments de la sémantique du compilateur et les fichiers d'en-tête nécessaires ont peut-être changé un peu au fil des ans, mais les bases de la configuration d'une socket UDP ou TCP et de la base de données DNS sont toujours valables aujourd'hui.

Bonne chance!

1

Cela semble être le dilemme classique de patauger dans la piscine ou la tête de plongée d'abord dans la partie profonde. Je trouve le code d'emballage de Steven ennuyeux et j'ai eu du mal à obtenir au moins quelques-uns des exemples qui fonctionnent sur chaque plate-forme sur laquelle je les ai essayés. Cela dit, les enveloppes cachent la plupart des erreurs triviales qui auraient été répétitives, non éclairantes et occupaient plus d'espace dans un livre déjà volumineux. (Bien qu'en toute justice, les éditeurs peuvent jeter le dernier 1/4 du livre couvrant XTI pour faire de la place.

La programmation réseau est assez profonde d'un sujet que vous pouvez alterner sur les vagues de surface et faire des boulets de canon. Plusieurs bonnes sources pour un démarrage rapide ont été mentionnées qui vous feront passer le "wow, je l'ai eu à travailler" étape. Mais quand vous avez besoin de monter à la «j'ai besoin d'être robuste et fiable parce que mon travail/produit en dépend», vous apprécierez Stevens, les verrues et tous, pour sa capacité à anticiper votre problème actuel.

Il y a eu des chapitres de l'œuvre de Steven que j'ai ignorés avec succès pendant des années. Mais j'étais sûr qu'ils étaient là quand j'en avais besoin.

1

Le volume de programmation de réseau d'UNIX 1/2, par W. Richard Stevens est légendaire.

Ithilgore a également écrit un document très détaillé sur raw sockets.

En outre, le Guide de Beej pour la programmation par socket est bien écrit, simple à comprendre et recommandé. Quoi que vous lisiez, assurez-vous d'écrire du code complémentaire.

0

Vous considérez aussi la référence plus générale, Unix ™ Systèmes de programmation: Communication, Concurrency, et les fils par Kay A. Robbins, Steven Robbins Prentice Hall ISBN: 0-13-042411-0

encore, le livre de Richard Steven est la référence la plus complète sur ce sujet spécifique

0

le livre de Michael Kerrisk (Il est également mainteneur man-pages Linux) the linux programming interface

il y a tout sur u programmation de nix; les chapitres de 57 à 61 sont sur les prises.

Questions connexes