Salut tous le monde...
Me voici depuis plusieurs jour confronté un a problème étrange.
Je veux envoyer un message par l'intermédiaire d'un packet UDP sur un serveur. Mais après le 'bind' je me retrouve avec une erreur 10049 (Cannot assign requested address.). On gros d'après ce que j'ai compris l'adresse IP n'existe pas. Sachant que je peux contacter le serveur avec d'autre programme VNC et que le port concerné est ouvert c'est étrange. Mais quand je met mon adresse IP locale là ca fonctionne. J'ai vérifié des dixaines de fois mon code et je ne vois pas d'erreur.
Si je ne tient pas compte du résultat de bind/je supprime l'appel a la fonction
-> Autre erreur : 10054 (Connection reset by peer.)
Quelqu'un a t'il une idée ?
Voici le bout de code incriminé
________________________________________________
WSADATA wsa;
SOCKET sock;
SOCKADDR_IN sin;
char buffer[255];
CString QueryStr = "TEST";
CString IP = "213.20.56.85";
int Port = 1000;
WSAStartup(MAKEWORD(2,0),&wsa);
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = inet_addr(IP);
sin.sin_port = htons(Port);
sock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP); // On déclare le socket a Windows
if(sock != INVALID_SOCKET)
{
if(bind(sock, (SOCKADDR*)&sin, sizeof(sin)) != SOCKET_ERROR) // On le lie aux propriétés définies plus haut
{
if(sendto(sock, QueryStr, QueryStr.GetLength(), 0, (SOCKADDR*)&sin, sizeof(sin)) != SOCKET_ERROR)
{
int sinsize = sizeof(sin);
if(recvfrom(sock, buffer, sizeof(buffer), 0, (SOCKADDR*)&sin, &sinsize) != SOCKET_ERROR)
{
// J'envoie vers une fonction qui traite le message
} else {
GetSocketError(); // C'est une fonction qui m'affiche le code SOCKET_ERROR et une description
}
} else {
GetSocketError();
}
} else {
GetSocketError();
}
} else {
GetSocketError();
}
________________________________________________
Merci d'avance pour votre aide :)