Translation

English
English French Actions
Using sockets for inter-process communication Utilisation de sockets pour la communication interprocessus
The socket is a powerful abstraction as it allows processes to communicate even if they are located on different computers. In this specific cases, the inter-processes communication will go through a network. Le socket est une abstraction puissante car il permet aux processus de communiquer même s'ils sont situés sur des ordinateurs différents. Dans ce cas précis, la communication inter-processus passe par un réseau.
Networked applications were usually implemented by using the :term:`socket` :term:`API`. This API was designed when TCP/IP was first implemented in the `Unix BSD`_ operating system [Sechrest]_ [LFJLMT]_, and has served as the model for many APIs between applications and the networking stack in an operating system. Although the socket API is very popular, other APIs have also been developed. For example, the STREAMS API has been added to several Unix System V variants [Rago1993]_. The socket API is supported by most programming languages and several textbooks have been devoted to it. Users of the C language can consult [DC2009]_, [Stevens1998]_, [SFR2004]_ or [Kerrisk2010]_. The Java implementation of the socket API is described in [CD2008]_ and in the `Java tutorial <http://java.sun.com/docs/books/tutorial/networking/sockets/index.html>`_. In this section, we will use the C socket API to illustrate the key concepts. Les applications en réseau sont généralement mises en œuvre à l'aide de l'interface :term:`socket` :term:`API`. Cette API a été conçue lorsque TCP/IP a été implémenté pour la première fois dans le système d'exploitation `Unix BSD`_ [Sechrest]_ [LFJLMT]_, et a servi de modèle pour de nombreuses API entre les applications et la pile réseau dans un système d'exploitation. Bien que l'API socket soit très populaire, d'autres API ont également été développées. Par exemple, l'API STREAMS a été ajoutée à plusieurs variantes d'Unix System V [Rago1993]_. L'API socket est supportée par la plupart des langages de programmation et plusieurs manuels lui ont été consacrés. Les utilisateurs du langage C peuvent consulter [DC2009]_, [Stevens1998]_, [SFR2004]_ ou [Kerrisk2010]_. L'implémentation Java de l'API socket est décrite dans [CD2008]_ et dans le `tutoriel Java <http://java.sun.com/docs/books/tutorial/networking/sockets/index.html>`_. Dans cette section, nous utiliserons l'API socket C pour illustrer les concepts clés.
The socket API is quite low-level and should be used only when you need a complete control of the network access. If your application simply needs, for instance, to retrieve data from a web server, there are much simpler and higher-level APIs. L'API socket est de très bas niveau et ne doit être utilisée que lorsque vous avez besoin d'un contrôle complet de l'accès au réseau. Si votre application a simplement besoin, par exemple, d'extraire des données d'un serveur web, il existe des API beaucoup plus simples et de plus haut niveau.
A detailed discussion of the socket API is outside the scope of this section and the references cited above provide a detailed discussion of all the details of the socket API. As a starting point, it is interesting to compare the socket API with the service primitives that we have discussed in the previous chapter. Let us first consider the connectionless service that consists of the following two primitives : Une discussion détaillée de l'API de socket sort du cadre de cette section et les références citées ci-dessus fournissent une discussion détaillée de tous les détails de l'API de socket. Pour commencer, il est intéressant de comparer l'API socket avec les primitives de service que nous avons abordées dans le chapitre précédent. Considérons d'abord le service sans connexion qui se compose des deux primitives suivantes :
`DATA.request(destination,message)` is used to send a message to a specified destination. In this socket API, this corresponds to the ``send`` method. `DATA.request(destination,message)` est utilisé pour envoyer un message à une destination spécifiée. Dans cette API socket, cela correspond à la méthode ``send``.
`DATA.indication(message)` is issued by the transport service to deliver a message to the application. In the socket API, this corresponds to the return of the ``recv`` method that is called by the application. `DATA.indication(message)` est émis par le service de transport pour délivrer un message à l'application. Dans l'API socket, cela correspond au retour de la méthode ``recv`` qui est appelée par l'application.
The `DATA` primitives are exchanged through a service access point. In the socket API, the equivalent to the service access point is the `socket`. A `socket` is a data structure which is maintained by the networking stack and is used by the application every time it needs to send or receive data through the networking stack. Les primitives `DATA` sont échangées via un point d'accès au service. Dans l'API socket, l'équivalent du point d'accès au service est le `socket`. Une `socket` est une structure de données qui est maintenue par la pile réseau et qui est utilisée par l'application à chaque fois qu'elle doit envoyer ou recevoir des données à travers la pile réseau.
Sending data to a peer using a socket Envoi de données à un pair à l'aide d'une socket
The ``sendto`` system call allows to send data to a peer identified by its socket address through a given socket. L'appel système ``sendto`` permet d'envoyer des données à un pair identifié par son adresse de socket via un socket donné.
The first argument is the file descriptor of the socket that we use to perform the communication. ``buf`` is a buffer of length ``len`` containing the bytes to send to the peer. The usage of ``flags`` argument is out of the scope of this section and can be set to 0. ``dest_addr`` is the socket address of the destination to which we want to send the bytes, its length is passed using the ``addrlen`` argument. Le premier argument est le descripteur de fichier de la socket que nous utilisons pour effectuer la communication. ``buf`` est un tampon de longueur ``len`` contenant les octets à envoyer à l'homologue. L'utilisation de l'argument ``flags`` est hors de portée de cette section et peut être mis à 0. ``dest_addr`` est l'adresse de la socket de destination à laquelle nous voulons envoyer les octets, sa longueur est passée en utilisant l'argument ``addrlen`'.
In the following example, a C program is sending the bytes ``'h'``, ``'e'``, ``'l'``, ``'l'`` and ``'o'`` to a remote process located at address ``peer_addr``, using the already created socket ``sock``. Dans l'exemple suivant, un programme C envoie les octets ``'h'``, ``'e'``, ``'l'``, ``'l'`` et ``'o'`` à un processus distant situé à l'adresse ``peer_addr``, en utilisant la socket ``sock`` déjà créée.
As the ``sendto`` function is generic, this function will work correctly independently from the fact that the peer's address is defined as a path on the computer filesystem or a network address. Comme la fonction ``sendto`` est générique, cette fonction fonctionnera correctement indépendamment du fait que l'adresse de l'homologue soit définie comme un chemin sur le système de fichiers de l'ordinateur ou une adresse réseau.
Receiving data from a peer using a socket Recevoir des données d'un pair en utilisant un socket

Loading…

User avatar pdan1

New translation

cnp3-ebook / exercises/socketsFrench

3 years ago
Browse all component changes

Glossary

English French
No related strings found in the glossary.

String information

Source string location
../../exercises/sockets.rst:4
String age
5 years ago
Source string age
5 years ago
Translation file
locale/fr/LC_MESSAGES/exercises/sockets.po, string 1