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++/CLI Discussion :

Problème de socket avec WinCE


Sujet :

C++/CLI

  1. #1
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 103
    Par défaut Problème de socket avec WinCE
    Bonjour,
    Je travail sur une application c++ destinée pour la plate-forme Windows CE.
    je manipule des sockets avec les commandes connu du language c++.
    J'ai voulu initialiser un "TimeOut" de 10s en utilisant la commande setsockopt mais cette dernière retourne toujours -1.
    J'ai investigué le problème et j'ai constaté que Windows CE ne supporte pas tous les options du sockets.
    Le voici les deux liens que j'ai trouvé:
    http://msdn.microsoft.com/en-us/libr...vs.85).aspx#Y0
    http://msdn.microsoft.com/en-us/libr...(v=vs.90).aspx
    Est ce que quelq'un a une idée pour ce problème?
    Merci

  2. #2
    Membre confirmé
    Inscrit en
    Février 2010
    Messages
    103
    Détails du profil
    Informations forums :
    Inscription : Février 2010
    Messages : 103
    Par défaut
    Voila j'ai trouvé la cause et la solution.
    setsockopt n'est pas supporté par WinCE.
    http://msdn.microsoft.com/en-us/libr...vs.85).aspx#Y0
    http://msdn.microsoft.com/en-us/libr...(v=vs.90).aspx
    Vous pouvez utiliser les descripteur pour résoudre ce problème.
    La solution consiste a ecouter sur la socket avec un timeout et n'exécuter la commande recv que si un evénement de reception est déclanché.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    int            RetVal = 0;
    struct timeval tv;
    fd_set         rd; 
     
    tv.tv_sec = 1;
    tv.tv_usec = 0;
     
    FD_ZERO(&rd);
    FD_SET(sockfd, &rd);
     
    RetVal = select((sockfd + 1), &rd, NULL, NULL, &tv);

  3. #3
    Expert confirmé
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Février 2005
    Messages
    5 476
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Conseil

    Informations forums :
    Inscription : Février 2005
    Messages : 5 476
    Par défaut
    Vous semblez confondre C++ et C++/CLI.

    Vous êtes sur un forum C++/CLI et vos liens sont aussi liés au C++/CLI.

    Mais le -1 en code retour, c'est du C Win32 pas du C++/CLI.

    Voici la référence pour setsockopt Win32
    http://msdn.microsoft.com/en-us/libr...(v=vs.85).aspx

    Si setsockopt n'est pas supporté par WinCE, c'est que vous utilisez les mauvais en-têtes ou les mauvaises constantes de compilation. Car sinon vous auriez eu une erreur de compilation.

    Utilisez "WSAGetLastError", comme indiqué dans la documentation pour connaître le motif du problème.

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

Discussions similaires

  1. Problème de Socket avec Windows Phone
    Par EtuParisDescartes dans le forum Windows Phone
    Réponses: 1
    Dernier message: 05/03/2012, 08h26
  2. problème de socket avec firebird (IBExpert)
    Par yaniss321 dans le forum Firebird
    Réponses: 18
    Dernier message: 10/05/2010, 23h01
  3. Réponses: 4
    Dernier message: 28/03/2010, 18h53
  4. Problème de socket avec le debogeur VS
    Par Math28 dans le forum Windows Mobile
    Réponses: 4
    Dernier message: 10/12/2007, 13h52
  5. Problême de Socket avec un applet java (RMI/policy)
    Par Vesperal dans le forum API standards et tierces
    Réponses: 3
    Dernier message: 12/04/2006, 12h00

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