J'ai un petit problème avec Visual C++ (2010) et une socket.
Je viens d'écrire un bout de code qui récupère un flux UDP d'une
caméra et qui le retransmet sur plusieurs réseaux en multicast
(toujours en UDP). Ce programme fonctionne bien, à l'aide d'un
analyseur de trame, je vois passer mes paquets UDP correctement
formatés.
Je viens de m'attaquer au client. Ce client doit donc se connecter à
une socket UDP et joindre un groupe multicast. Lorsque je fais
tourner le programme compilé en debug, ça fonctionne parfaitement.
En release, la fonction recvfrom() échoue sur un timeout et je ne
comprends pas du tout ce qui se passe. La chose est compilée en 32
bits sur un Windows 7 Ultimate 64 bits avec Visual Studio 2010
professionnel.
Le port utilisé est le port UDP/34 (imposé) et ne doit pas tourner
en administrateur. 34 est inférieur à 1024, mais si c'était ça le
problème, il devrait aussi se poser en debug.
Mon code est le suivant (il figure dans une fonction privée d'une
classe) :
// Ici, recvfrom() échoue sur un timeout alors que les trames
// sont bien envoyées. Le port est UDP/34 et le programme ne tourne pas
// en administrateur.
Sleep((((double) rand()) / RAND_MAX) * 1000);
}
// .....
return;
}
Je suis convaincu que mon problème n'est pas un problème de réseau.
Si c'était le cas, cela ne fonctionnerait pas en debug.
Ou il se situe entre la chaise et le clavier ou il s'agit d'un
problème microsoftien, mais il a forcément une explication
rationnelle et peut-être certains d'entre vous ont déjà observé le
même genre de dysfonctionnement.
Si quelqu'un n'avait qu'un début d'explication, je lui serai
reconnaissant de bien vouloir éclairer ma lanterne.
Cordialement,
JKB
--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr
Les 2 (cleint et serveurà) sont linkés avec la même lib ?? De mémoire il y plusieurs lib dispo (ws32, ws32_2) qui implementent de mêmes fonctions mais dont le comportement peut varier suivant la lib utilisé.
Oui. Mais entre temps, j'ai trouvé que le problème venait de W7 et je susi passé à autre chose.
/bin/bash: q : commande introuvable
-- Si votre demande me parvient sur carte perforée, je titiouaillerai très volontiers une réponse... => http://grincheux.de-charybde-en-scylla.fr
Le 13 May 2011 09:49:28 GMT,
Thierry <yarglah@com.invalid> écrivait :
Les 2 (cleint et serveurà) sont linkés avec la même lib ??
De mémoire il y plusieurs lib dispo (ws32, ws32_2) qui implementent de
mêmes fonctions mais dont le comportement peut varier suivant la lib
utilisé.
Oui. Mais entre temps, j'ai trouvé que le problème venait de W7 et
je susi passé à autre chose.
/bin/bash: q : commande introuvable
--
Si votre demande me parvient sur carte perforée, je titiouaillerai très
volontiers une réponse...
=> http://grincheux.de-charybde-en-scylla.fr
Les 2 (cleint et serveurà) sont linkés avec la même lib ?? De mémoire il y plusieurs lib dispo (ws32, ws32_2) qui implementent de mêmes fonctions mais dont le comportement peut varier suivant la lib utilisé.
Oui. Mais entre temps, j'ai trouvé que le problème venait de W7 et je susi passé à autre chose.
/bin/bash: q : commande introuvable
-- Si votre demande me parvient sur carte perforée, je titiouaillerai très volontiers une réponse... => http://grincheux.de-charybde-en-scylla.fr