doufdouf51
Messages postés5Date d'inscriptionvendredi 2 janvier 2009StatutMembreDernière intervention 7 juin 2010
-
2 juin 2010 à 16:58
doufdouf51
Messages postés5Date d'inscriptionvendredi 2 janvier 2009StatutMembreDernière intervention 7 juin 2010
-
7 juin 2010 à 11:24
J'ai un probleme avec la fonction recvfrom()
J'ai une application une en C# et dll en C++ qui communique en UDP.
Les deux programme peuvent envoyer des requêtes a l'autre.
Du coté serveur en C++ l'application fonctionne corectement donc coté client C# pas de souci.
Pas contre lorsque que j'envoie une requête a partie de la dll elle s'envoi correctement je la recois bien dans mon application C#, celle ci renvoi un accuser et mon application bug sur la fonction recvfrom().Je vous met mon code:
int n;
char buffer[1007];
struct hostent *hostinfo = NULL;
SOCKADDR_IN Info_destination = { 0 };
const char *hostname = "127.0.0.1"; //IP du serveur
int tosize = sizeof Info_destination;
Info_destination.sin_addr = *(IN_ADDR *) hostinfo->h_addr; //IN_ADDR->Ecoute sur toutes les IP locales
Info_destination.sin_port = htons(8444);
Info_destination.sin_family = AF_INET;
une fois que mon code arrive a la fonction recvfrom elle ne passe pas a l'instruction suivante.(dans mon fichier DEBUG je trouve le premier While puis plus rien. Je suis sur que cela ne vient pas de mon fichier DEBUG car quand je quitte la dll je retrouve bien a la suite les commande de fermeture.
Je ne vois pas du tout d'où cela peut venir :(
Si quelle qu'un a une idée je suis ouvert.
Si vous avez besoin de plus d'informations dit le moi !
katerson
Messages postés47Date d'inscriptionjeudi 27 avril 2006StatutMembreDernière intervention24 juin 2011 7 juin 2010 à 10:06
Salut!
"Pas contre lorsque que j'envoie une requête a partie de la dll elle s'envoi correctement je la recois bien dans mon application C#, celle ci renvoi un accuser et mon application bug sur la fonction recvfrom()"
Je ne crois pas avoir tout saisi mais la fonction recvfrom() est une fonction bloquante >> tant que le message n'est pas reçu tu ne sortiras pas de cette fonction...
As-tu fait du pas à pas pour voir ce qui se passe? Ta socket est peut être mal initialisé d'un des 2 côtés et tu ne reçois rien.
doufdouf51
Messages postés5Date d'inscriptionvendredi 2 janvier 2009StatutMembreDernière intervention 7 juin 2010 7 juin 2010 à 11:24
je ne peut pas utiliser le mode Debug(Je crois...) car le problème vient de la fonction recvfrom() de ma dll!! c'est pour cette raison que j'utilise un fichier texte qui me sert de Debug (je vais revérifier les initialisation des sockets)je te tien au courant