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

Réseau C Discussion :

sockets : warning sur la fonction accept()


Sujet :

Réseau C

  1. #1
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Points : 208
    Points
    208
    Par défaut sockets : warning sur la fonction accept()
    Bonsoir,

    il y a un warning dont je ne comprends pas la raison d'être
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    newfd = accept(sockfd, (struct sockaddr *)&client_addr, &sin_size);
    sachant que j'ai déclaré mes variables ainsi :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    int sockfd = -1;
    int newfd = 0;
    int sin_size = 0;
    struct sockaddr_in client_addr;
     
    sin_size = sizeof(struct sockaddr_in);
    Merci de vos réponses

    EDIT : j'ai oublié le plus important :p
    Le warning est le suivant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    main.c:50: attention : pointer targets in passing argument 3 of ‘accept’ differ in signedness
    Voili voilou

  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
    T'as essayé avec un unsigned int ? Pcq le type attendu par accept est socklen_t (non signé j'imagine)

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 131
    Points : 114
    Points
    114
    Par défaut
    au pire utilise :
    socklent_t au lieu de int.

  4. #4
    Membre actif
    Profil pro
    Étudiant
    Inscrit en
    Novembre 2006
    Messages
    287
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Novembre 2006
    Messages : 287
    Points : 208
    Points
    208
    Par défaut
    au poil !

    Merci beaucoup

    edit : c'est bien socklen_t qu'il faut mettre comme type

  5. #5
    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
    socklen_t est un uint32_t (soit un unsigned int )

  6. #6
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par berg
    au pire utilise :
    socklent_t au lieu de int.
    Pourquoi "au pire", j'aurais plutot dit que c'etait preferable d'utiliser le type attendu par une fonction plutot qu'un type qui pourrait eventuellement correspondre.

  7. #7
    gl
    gl est déconnecté
    Rédacteur

    Homme Profil pro
    Inscrit en
    Juin 2002
    Messages
    2 165
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : France, Isère (Rhône Alpes)

    Informations forums :
    Inscription : Juin 2002
    Messages : 2 165
    Points : 4 637
    Points
    4 637
    Par défaut
    Citation Envoyé par Freed0
    socklen_t est un uint32_t (soit un unsigned int )
    Le type reel de socklen_t (et de uint32_t) pouvant dependre des plateforme, de la version du compilateur, voire des reglages de celui-ci, faire ce genre de supposition (socklen_t == unsigned int) est assez hasardeux et ne presente pas vraiment d'interet.

    Si un type particulier a ete defini pour encapsuler le type reel, il est largement preferable de l'utiliser lui plutot que le type qui semble correspondre dans un cas donne.

  8. #8
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    131
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 131
    Points : 114
    Points
    114
    Par défaut
    Citation Envoyé par gl
    Pourquoi "au pire", j'aurais plutot dit que c'etait preferable d'utiliser le type attendu par une fonction plutot qu'un type qui pourrait eventuellement correspondre.
    ... Ouais j ai note ca comme ca, j aurai du mieu formule.

  9. #9
    Expert éminent sénior
    Avatar de Emmanuel Delahaye
    Profil pro
    Retraité
    Inscrit en
    Décembre 2003
    Messages
    14 512
    Détails du profil
    Informations personnelles :
    Âge : 67
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Décembre 2003
    Messages : 14 512
    Points : 20 985
    Points
    20 985
    Par défaut
    Citation Envoyé par gl
    Le type reel de socklen_t (et de uint32_t) pouvant dependre des plateforme, de la version du compilateur, voire des reglages de celui-ci, faire ce genre de supposition (socklen_t == unsigned int) est assez hasardeux et ne presente pas vraiment d'interet.

    Si un type particulier a ete defini pour encapsuler le type reel, il est largement preferable de l'utiliser lui plutot que le type qui semble correspondre dans un cas donne.
    +1.

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

Discussions similaires

  1. [DOM] Warning sur la fonction loadXML
    Par dsr57 dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 14/01/2009, 15h04
  2. Réponses: 3
    Dernier message: 23/05/2007, 14h14
  3. Problème avec les sockets et la fonction accept
    Par projeticq dans le forum Réseau
    Réponses: 6
    Dernier message: 13/04/2007, 11h37
  4. Gestion de sockets: fonction Accept
    Par keupon dans le forum MFC
    Réponses: 12
    Dernier message: 22/01/2004, 18h48
  5. [Sockets] Timeout sur accept() ?
    Par MikB dans le forum Développement
    Réponses: 2
    Dernier message: 30/12/2003, 17h22

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