IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement Discussion :

Question sur client-serveur


Sujet :

Développement

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Février 2003
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 191
    Points : 158
    Points
    158
    Par défaut Question sur client-serveur
    Bonjour à tous,

    Voilà je suis en train de développer une appli possédant un client et un serveur et qui permet de transmettre des fichiers avec la même appli sur un poste distant. En gros, donc le client d'une appli(1) fait une demande de fichier au serveur d'une autre appli(2) et ce serveur va devoir renvoyer ce fichier à l'appli(1). Si j'ai bien tout compris, le serveur de l'appli(2) va devoir créer un nouveau thread pour l'envoi des données et donc recréer une nouvelle socket sur un nouveau port? Socket qui servira à la transmission du fichier entre l'appli(2) et l'appli(1). C'est bien cela? Et donc, si chaque appli peut dialoguer avec n autres applications, je dois faire en sorte que l'appli(2) et (1) se mettent d'accord sur un port disponible sur les 2 machines. Vous avez une idée pour cela?

    Merci d'avance.

  2. #2
    Membre éprouvé
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Points : 953
    Points
    953
    Par défaut
    Salut,

    Ton explication me semble correcte. En supposant que tu travailles en mode connecté (TCP généralement), tu auras en effet besoin de 1 + n sockets.

    La première est ce que j'appelle la socket d'écoute. Elle attend qu'un client se connecte. Dès que c'est le cas, l'application crée un thread qui prendra le client en charge avec une nouvelle socket, une socket connectée.

    En gros, la socket d'écoute (listenfd) est une sorte d'accueil qui redirige chaque client vers une nouvelle socket connectée (connfd).

    Pour ce qui est des ports, généralement on spécifie celui du serveur. Ainsi le client sait à qui il doit se connnecter. Le port utilisé par le client est lui choisi par le noyau, sauf si tu en spécifies un (mais bon faut savoir lesquels sont utilisés etc). Le port du client est transmis au serveur lorsqu'il s'y connecte.

    Par exemple, un serveur FTP aura le port 21 et le client aura peut-être le port 5823 (d'après les ports déjà utilisés).

    Voilà, si tu as d'autres questions auxquelles je peux essayer de répondre, n'hésites pas

  3. #3
    Membre habitué
    Profil pro
    Inscrit en
    Février 2003
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 191
    Points : 158
    Points
    158
    Par défaut
    Ok. Donc si j'ai bien compris le seveur écoute sur un port prédéfinis. Un client créé un socket avec comme Local End Point un port libre choisi par le système et comme remote End Point le port du serveur. Le serveur recoit la connexion, identifie le port et l'adresse utilisés par la machine cliente, ferme le socket et recrée un socket avec un port libre attribué par le système et comme Remote End Point, l'adersse et le port de la machine cliente. C'est bien ca? A vrai dire je ne vois pas d'autre solution, c'est juste que je ne savais pas que le protocol TCP permettait de connaitre le port utilisé par la machine en remote. Je vais essayer comme cela.

    Merci beaucoup.

  4. #4
    Membre éprouvé
    Avatar de Freed0
    Profil pro
    Étudiant
    Inscrit en
    Mars 2005
    Messages
    635
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 635
    Points : 953
    Points
    953
    Par défaut
    Uep, c'est bien ça

  5. #5
    Membre émérite
    Avatar de Ti-R
    Homme Profil pro
    Ingénieur R&D
    Inscrit en
    Avril 2003
    Messages
    1 683
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Ingénieur R&D
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2003
    Messages : 1 683
    Points : 2 568
    Points
    2 568
    Par défaut
    Donc ?

Discussions similaires

  1. mise en place de statistique sur client serveur
    Par king_neo2001 dans le forum Développement
    Réponses: 3
    Dernier message: 14/06/2007, 13h18
  2. question sur le serveur apache
    Par b_ahmed dans le forum Apache
    Réponses: 2
    Dernier message: 29/09/2006, 13h30
  3. Question sur terminal serveur
    Par Blo0d4x3 dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 23/05/2006, 09h32
  4. Question sur les serveurs (suite)
    Par ChriGoLioNaDor dans le forum C++
    Réponses: 2
    Dernier message: 12/01/2006, 01h03
  5. Question sur les serveurs
    Par ChriGoLioNaDor dans le forum C++
    Réponses: 2
    Dernier message: 07/01/2006, 00h55

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo