Faire suivre un port

Problème

Vous avez besoin d’un programme qui agisse en tant que serveur mandataire pour un port.

Solution

Créez un serveur capable de se connecter sur une machine distante. Toute connexion sur le serveur entraîne une connexion sur la machine distante. Puis toutes les données disponibles sur une socket doivent être renvoyées sur l’autre et réciproquement.

Discussion

Le principe d’un tel programme est de créer un client et un serveur TCP. Ces deux tâches sont assurées par les fonctions create_tcp_server() et create_tcp_client(). C’est à l’utilisateur d’effectuer les connexions entre ce programme mandataire et les deux autres, serveur et client souhaitant communiquer. Puis, dans la boucle principale, le programme attend des données sur chacune des sockets à l’aide de la fonction select() et écrit dans chaque socket tout ce qu’il lit sur l’autre. La boucle principale se trouve dans la fonction forwarder().

La boucle de la fonction main() pourrait aussi être qualifiée de boucle principale. Notre serveur mandataire attend une connexion sur son serveur et, lorsque celle-ci a lieu, le programme se duplique avec fork() afin que le processus fils puisse jouer le rôle de mandataire. Pendant ce temps, le processus père itère et attend une nouvelle...

Pour consulter la suite, découvrez le livre suivant :
couv_EI3CACT.png
60-signet.svg
En version papier
20-ecran_lettre.svg
En version numérique
41-logo_abonnement.svg
En illimité avec l'abonnement ENI
130-boutique.svg
Sur la boutique officielle ENI
Précédent
Introduction
Suivant
Obtenir une page web d'un serveur HTTP ou HTTPS