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 :

Serveur TCP: arrêter d'écouter


Sujet :

Développement

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut Serveur TCP: arrêter d'écouter
    Bonjour,

    Pour une application un peu particulière (en linux embarqué, kernel 2.4) que je suis en train de développer j'aurais besoin que mon serveur arrête d'écouter des nouvelles connexions à un certain moment.

    Il y a 2 phases de fonctionnement:
    1-Attente de connexion des différents clients (nombre variable)
    2-Communication avec ces clients (un thread par client)

    Or, si en phase de communication un client veut se connecter la connexion est bien établie... il faudrait qu'elle ne soit établie que lorsqu'on repasse en attente de connexion.

    Je pensais qu'en mettant à 0 le paramètre backlog de listen aurait cet effet mais ce n'est pas le cas...

    J'ai fais pas mal de recherches et ca n'a pas l'air d'être un problème très courant, je n'ai rien trouvé d'ailleurs, mais si certains ont des idées n'hésitez surtout pas!

    Merci, Romain.

  2. #2
    Membre expérimenté
    Avatar de granquet
    Profil pro
    Étudiant
    Inscrit en
    Octobre 2005
    Messages
    1 201
    Détails du profil
    Informations personnelles :
    Localisation : France, Pyrénées Orientales (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2005
    Messages : 1 201
    Points : 1 421
    Points
    1 421
    Par défaut
    le backlog de listen pour TCP ne fonctionne pas comme tu le crois (voir les docs techniques détaillés la dessus)
    regarde plutot le man de tcp(7) aux syctl suivants: tcp_max_syn_backlog, tcp_synack_retries
    click my www
    ............|___
    ...................\
    .................._|_
    ..................\ /
    ..................."

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Juin 2006
    Messages
    5
    Détails du profil
    Informations personnelles :
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2006
    Messages : 5
    Points : 4
    Points
    4
    Par défaut
    OK merci, oui je viens de voir sur un man plus détaillé son vrai fonctionnement...

    Je vais regarder tout ca dans l'aprem.

  4. #4
    Membre à l'essai
    Inscrit en
    Septembre 2008
    Messages
    21
    Détails du profil
    Informations forums :
    Inscription : Septembre 2008
    Messages : 21
    Points : 24
    Points
    24
    Par défaut
    Je pense qu'il suffirait de fermer la socket listen lorsque tu arrives en phases 2.
    Ceci n'a pas d'influence sur les connexion déjà établis (sur d'autre socket).
    Si tu dois rebasculer en phase 1, il suffit de rouvrir la socket en mode listen pour être en mesure d'accepter de nouveaux clients.

Discussions similaires

  1. serveur TCP
    Par dirty_boy dans le forum Développement
    Réponses: 5
    Dernier message: 03/02/2006, 13h03
  2. Client Tcp/ Serveur TCP
    Par Phébus dans le forum Web & réseau
    Réponses: 2
    Dernier message: 21/07/2005, 16h35
  3. client/serveur tcp/ip en c sous unix
    Par oclone dans le forum Développement
    Réponses: 8
    Dernier message: 19/04/2005, 18h55
  4. Serveur TCP/IP Indy bloquant ?
    Par f6dqm1 dans le forum Web & réseau
    Réponses: 6
    Dernier message: 07/12/2004, 09h08
  5. [Concept]Concept d'un serveur TCP/IP
    Par Zc dans le forum Développement
    Réponses: 8
    Dernier message: 17/01/2003, 17h06

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