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 :

Probleme minime de socket


Sujet :

C++

  1. #1
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut Probleme minime de socket
    Salut!

    Je débute avec les sockets et je ne maitrise pas encore toutes les données manipulées.

    Quand je compile, avec Dev-C++,j'ai ce warning:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    52 C:\Documents and Settings\Propriétaire\Bureau\main_socket_serveur.cpp [Warning] converting of negative value `-0x000000001' to `SOCKET'
    La ligne concernées est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    while(1){sock_bis=SOCKET_ERROR;
    Cela ne m'empeche pas de compiler et tout fonctionne parfaitement;mais j'aimerais en savoir plus sur cette erreur et trouver une solution.

    Merci d'avance de votre aide.

  2. #2
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    bien le bonjour,

    SOCKET_ERROR est une constante valant -1, elle correspond à un retour possible d'une fonction renvoyant généralement un int (donc un entier signé).

    tandis que le type SOCKET correspond à un entier non signé. Tu essaies donc de mettre un entier négatif dans un entier non signé. D'où le warning.

    Il y a un problème, je suppose que sock_bis est du type SOCKET, et tu essaies d'y mettre un identifiant d'erreur. Ce sont 2 types de données différents, à ne pas mélanger.

  3. #3
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    Merci de la réponse!

    En effet sock_bis désigne bien un socket.

    Mais cette notation vient pourtant du site MSDN!

    Mais alors comment éviter ce warning?

  4. #4
    Rédacteur

    Avatar de khayyam90
    Homme Profil pro
    Architecte de système d’information
    Inscrit en
    Janvier 2004
    Messages
    10 371
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Architecte de système d’information

    Informations forums :
    Inscription : Janvier 2004
    Messages : 10 371
    Par défaut
    on peut trouver quelques incohérences dans la doc MSDN.
    ta ligne de code ressemble à un code pour vérifier de retour d'un accept.

    Citation Envoyé par la doc MSDN sur accept
    If no error occurs, accept returns a value of type SOCKET that is a descriptor for the new socket. This returned value is a handle for the socket on which the actual connection is made.

    Otherwise, a value of INVALID_SOCKET is returned,
    donc, utilise INVALID_SOCKET (2^32-1 donc positif) et pas SOCKET _ERROR.
    Et pour ne pas te faire avoir, regarde bien le type de chaque fonction utilisée ainsi que la valeur des constantes.

  5. #5
    Membre Expert
    Avatar de Pragmateek
    Homme Profil pro
    Formateur expert .Net/C#
    Inscrit en
    Mars 2006
    Messages
    2 635
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Formateur expert .Net/C#
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2006
    Messages : 2 635
    Par défaut
    J'ai remplacé SOCKET_ERROR par INVALID_SOCKET.

    Je n'ai plus de warning a la compil et tout marche bien!

    Merci beaucoup de ton aide!

    Je note le probleme

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

Discussions similaires

  1. probleme avec les sockets
    Par iznogoud36 dans le forum Linux
    Réponses: 4
    Dernier message: 20/12/2006, 10h33
  2. Probleme C++ et sockets
    Par yetpa dans le forum C++
    Réponses: 17
    Dernier message: 22/06/2006, 14h12
  3. [C++] Probleme de connexion socket client à mon serveur smtp
    Par matthieu5978 dans le forum Développement
    Réponses: 2
    Dernier message: 04/12/2005, 08h19
  4. Probleme avec des socket !
    Par Ptimath44 dans le forum Réseau
    Réponses: 11
    Dernier message: 31/10/2005, 18h11
  5. Réponses: 2
    Dernier message: 31/05/2005, 09h50

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