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 :

socket TCP


Sujet :

C++

  1. #1
    Membre du Club

    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 : 59
    Points
    59
    Par défaut socket TCP
    bonjour,

    j'ai un programme (un speudo serveur) qui utlise des socket tcp.
    en fait il y a chauqe fois un thread qui gere une socket tcp sur une adresse TCP.

    cette socket gere un dialogue avec un client tcp....

    tand qu'il y a que 20 clients (dc 20 thraed sur mon appli avec chcun une socket vers ce client), tout marche bien....

    mais des que je depasse ce nombre, et bien il y a aucun dialogue possible
    sur la socket que je viens de connecter...
    elle me semble bloquer.... quelqu'un aurait une idee car je ne vois vraiment pas d'ou ca peut venir...

    je suis sous linux, j'utlise g++ ...

  2. #2
    jmv
    jmv est déconnecté
    Membre confirmé Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Points : 603
    Points
    603
    Par défaut
    salut,
    sans code, difficile de t'aider. Pourrait-on en voir un bout pour savoir comment tu utilises socket(), bind(), listen() accept(), etc...

  3. #3
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Premièrement, je suppose que tu as codé en sorte de détecter toutes les erreurs de toutes les fonctions et d'afficher un message adéquat? Sinon, commence par cela, tu auras une indication de ce qui foire.

    Deuxièmement, il me semble avoir vu un groupe sur Linux. Peut-être qu'il s'y trouve des gens plus à même que ceux qui fréquentent ce groupe pour répondre à la question (je parie que la réponse correcte est la même que tu ai programme en C++, en C, en Ada, en Java ou en quoi que ce soit d'autre).

    Une idée comme ça (jmv a raison, sans le code c'est diffile de savoir ce que tu fais exactement), tu ne serais pas à court de descripteurs de fichiers? (pour connaître le nombre maximal de descripteurs de fichier, en shell: ulimit ou limit, dans ton programme getrlimit).

  4. #4
    jmv
    jmv est déconnecté
    Membre confirmé Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Points : 603
    Points
    603
    Par défaut
    [à ne pas lire parce que c'est faux]
    je soupçonne un listen(desc,20);
    [/à ne pas lire parce que c'est faux]

  5. #5
    Expert éminent

    Inscrit en
    Novembre 2005
    Messages
    5 145
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 5 145
    Points : 6 911
    Points
    6 911
    Par défaut
    Citation Envoyé par jmv
    je soupçonne un listen(desc,20);
    J'avais l'impression que il se trouvait avec une limitation du nombre de connections acceptees et que ce deuxieme argument de listen, etait en relation (variable suivant les OS) avec le nombre de connections pas encore acceptees.

    (Note, je ne suis pas un specialiste des reseaux).

  6. #6
    Expert éminent sénior
    Avatar de Médinoc
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2005
    Messages
    27 379
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France

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

    Informations forums :
    Inscription : Septembre 2005
    Messages : 27 379
    Points : 41 573
    Points
    41 573
    Par défaut
    le second paramètre de listen n'a rien à voir avec le nombre maximal de connexions d'un serveur : Comme l'a dit Jean-Marc.Bourguet, il est en relation avec le nombre de connexions pas encore acceptées
    (Bref, combien de clients peuvent se croire connectés entre le listen et le accept)

  7. #7
    jmv
    jmv est déconnecté
    Membre confirmé Avatar de jmv
    Profil pro
    Enseignant
    Inscrit en
    Mai 2004
    Messages
    395
    Détails du profil
    Informations personnelles :
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Enseignant

    Informations forums :
    Inscription : Mai 2004
    Messages : 395
    Points : 603
    Points
    603
    Par défaut
    je viens de consulter la page man (man listen dans google, ça marche aussi) Et bien tu as raison, c'est bien le nombre de connexions en file d'attente. J'avais donc dit une grosse connerie.

    On en apprend tous les jours

Discussions similaires

  1. Sockets TCP/ Threads
    Par guillaume16 dans le forum C++
    Réponses: 3
    Dernier message: 27/07/2006, 23h45
  2. récupérer string par socket TCP
    Par bogsy15 dans le forum C++
    Réponses: 14
    Dernier message: 11/06/2006, 16h05
  3. [SOCKET] TCP : select devant send();
    Par trois_1 dans le forum Développement
    Réponses: 4
    Dernier message: 02/03/2004, 18h10
  4. [socket][tcp] jeu en reseau
    Par souris_sonic dans le forum Développement
    Réponses: 2
    Dernier message: 30/05/2003, 07h31
  5. transfert d'un fichier bitmap en socket tcp
    Par localhost dans le forum C++Builder
    Réponses: 5
    Dernier message: 29/07/2002, 00h40

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