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

C++Builder Discussion :

serveur multi clients


Sujet :

C++Builder

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Points : 73
    Points
    73
    Par défaut serveur multi clients
    bonjour,

    je suis entrain de developper une application serveur multi clients.
    Je voudrais savoir :

    -la différence entre le mode synchrone et asynchrone? avantages et inconvénients

    sachant que dans mon cas le client demande au serveur d'effectuer des calculs qui peuvent être assez longs.

    j'ai une idée mais j'ai des doutes

    j'ai pensé faire ceci:

    dans serveur creer une classe ConnexionClient qui herite de TThread.

    à chaque nouveau client accepté par le serveur creer un objet ConnexionClient et lui associer les méthodes de calculs.

    -comment envoyer un message à un client précis (lui donner la réponse au calcul demandé)?

    le ServerSocket->Socket->Connections est un tableau des sockets connectés à la socket serveur. Comment trouver celle de mon client?

    Merci

  2. #2
    Membre habitué
    Avatar de Freeze
    Homme Profil pro
    Inscrit en
    Octobre 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 131
    Points : 162
    Points
    162
    Par défaut
    Bonjour,

    tu devrais regarder un peu cet exemple :

    http://www.developpez.org/club/g3dbu...t/tutoriel.htm

    je pense que ca te permettra de cerner un peu mieux les socket ...

    quant à ta question concernant l'identification des clients je pense effectivement que la solution est de créer ( à mon avis ) 2 classes :

    - TListClient
    - TClient(TCustomWinSocket *Socket)

    ainsi lorsque tu recois une question d'un client par comparaison tu peux identifier le client dans ta TListClient ... par contre je vois par trop l'utilité de ton TThread la dedans ...
    Quant à ta question de synchronisme, je crois que le mieux est d'utiliser une communication synchrone en question/réponse!!!

    en espérant t'avoir aidé ...

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Points : 73
    Points
    73
    Par défaut
    en fait je vois les choses de deux manieres.
    Supposons que nous avons plusieurs clients et un serveur.
    Chaque client demande au serveur de faire des calculs lourds et lui renvoyer les résultats.

    Méthode 1
    Quand le serveur accepte un Client il cree une classe TClient

    les attributs:
    Socket SocketClient;
    les méthodes:
    LireDepuisClient()
    EcrireVersClient()
    TraiterCalcul()

    TClient hériterait de TThread comme ça , à chaque connexion un thread est attribué au Client et le calcul se fait à l'intérieur de ce thread

    Méthode 2:

    A chaque connexion de client :
    -Faire une liste des clients connectés avec leurs Identifiants:
    Un client se connecte, le serveur le rajoute dans la liste, récupère son identifiant et lance le calcul dans un thread, dès que calcul finit , il recherche le client dans la liste et lui envoie la réponse.


    Je ne sais pas si il y'a d'autres façons de procèder et quelle solution est la meilleure. Des personnes m'ont dit que Borland TServerSocket gère automatiquement les threads mais je n'ai rien compris entre NonBlocking et Threads

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Décembre 2004
    Messages
    82
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2004
    Messages : 82
    Points : 73
    Points
    73
    Par défaut
    Dites moi svp ce que vous en pensez meme si peut être pour vous ce sont des choses faciles!!

  5. #5
    Membre habitué
    Avatar de Freeze
    Homme Profil pro
    Inscrit en
    Octobre 2002
    Messages
    131
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2002
    Messages : 131
    Points : 162
    Points
    162
    Par défaut
    Bonjour,

    Effectivement ta méthode 1 me semble la plus appropriée ... chaque classe TClient est un thread qui contient aussi un TSocketClient ...

    Bon courage

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Probleme Serveur/Multi-client avec socket
    Par CouaC dans le forum Réseau
    Réponses: 9
    Dernier message: 18/06/2007, 00h49
  2. [sockets][UDP][C/C++] serveur multi-clients
    Par l@rry dans le forum Développement
    Réponses: 4
    Dernier message: 08/06/2006, 14h11
  3. Fork, pthread et serveur multi-clients
    Par Pico10 dans le forum POSIX
    Réponses: 13
    Dernier message: 05/01/2006, 11h48
  4. Serveur Multi-clients
    Par darsky dans le forum C++Builder
    Réponses: 5
    Dernier message: 16/04/2004, 09h53
  5. Création d'un Serveur Multi Client
    Par N*E*R*D dans le forum Autres éditeurs
    Réponses: 5
    Dernier message: 16/03/2004, 17h13

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