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# Discussion :

Serveur multithread à la demande


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 100
    Par défaut Serveur multithread à la demande
    Bonjour,

    voila après des recherches sur internet, je ne trouve pas vraiment ce que je veux

    J'aurai voulu créer un serveur multithread à la demande, c'est-à-dire que mon programme va donc lancer un premier thread qui va boucler sur un accept d'une connexion tcp. Celui se chargera seulement de vérifier l'authentification du client dans une base de données quelconque. Si le client est vérifié, le premier thread lance donc un autre thread spécifique au client pour pouvoir recevoir ses requêtes et ainsi permettre à d'autres clients de se connecter au premier thread.

    Seulement je ne vois pas sur le net comment implémenter un tel serveur

    Pourriez-vous m'aider ?

    Merci d'avance,

    Julien

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    Si tu travailles en WCF, il est possible de déléguer ça à la couche WCF en paramétrant le mode Concurrency en multiple.

  3. #3
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 100
    Par défaut
    Merci pour ta réponse,

    mais le problème c'est que mon projet n'est pas un projet WCF et j'en ai jamais fait non plus Aurait-il un autre moyen car j'ai aucune connaissance en WCF ?

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Avril 2006
    Messages
    1 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Avril 2006
    Messages : 1 627
    Par défaut
    Dans ce cas là, ton serveur a une méthode Listen, qui est une boucle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    public void Listen()
    {
       while(true)//A adapter après
       {
            if(...)//Test de la connexion tcp designant la réception d'une trame
            {
                new Thread(new ThreadStart(() => TraiterDemande(laTrameTCPrecue))).Start();
            }
       }
    }
    Si tu es en DotNet 4, tu peux remplacer le Thread par un Task

  5. #5
    Membre chevronné Avatar de Jerede
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mai 2010
    Messages
    271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Mai 2010
    Messages : 271
    Par défaut
    Bonjour,

    D'après tes explications, ce que tu souhaites réaliser est en quelque sorte un serveur TCP asynchrone, non ? Dans ce cas, tu n'as pas à t'embêter avec les threads, la classe Socket possède des méthodes asynchrones spécialement faites pour ça (BeginAccept/EndAccept, BeginReceive/EndReceive ou AcceptAsync, ReceiveAsync..). La vérification via la base de données se ferait dans le callBack du BeginAccept

    http://msdn.microsoft.com/fr-fr/libr...(v=vs.80).aspx
    http://msdn.microsoft.com/fr-fr/libr...(v=vs.80).aspx

    Bonne chance

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Février 2010
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Février 2010
    Messages : 100
    Par défaut
    Bonjour,

    merci tout le monde pour vos réponses, je vais un peu regarder tout ça et tenter de faire mon serveur

    Bonne journée,

    Julien

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

Discussions similaires

  1. Arrêt d'un serveur multithread
    Par bambou dans le forum Entrée/Sortie
    Réponses: 7
    Dernier message: 07/07/2010, 16h04
  2. conception serveur multithread
    Par nivose110 dans le forum Réseau
    Réponses: 12
    Dernier message: 17/07/2006, 16h43
  3. Question Serveur Multithread
    Par Mr_Chut dans le forum Réseau
    Réponses: 10
    Dernier message: 09/06/2006, 17h27
  4. Réponses: 5
    Dernier message: 11/01/2006, 07h58

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