Erreur 10049 sur socket UDP

Ezekiel69 Messages postés 5 Date d'inscription vendredi 10 janvier 2003 Statut Membre Dernière intervention 25 avril 2005 - 10 janv. 2004 à 13:50
cs_domi91 Messages postés 1 Date d'inscription dimanche 15 février 2004 Statut Membre Dernière intervention 15 février 2004 - 15 févr. 2004 à 19:50
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 :)
A voir également:

2 réponses

cs_aardman Messages postés 1905 Date d'inscription mercredi 22 janvier 2003 Statut Membre Dernière intervention 17 septembre 2012 3
10 janv. 2004 à 14:58
Salut,
Pas besoin de binder ton socket lorsque c'est toi qui établi la connexion (TCP) ou lorsque c'est toi qui envoie un packet en 1er (UDP).
De plus on binde avec une adresse locale(la tienne) et non distance.
0
cs_domi91 Messages postés 1 Date d'inscription dimanche 15 février 2004 Statut Membre Dernière intervention 15 février 2004
15 févr. 2004 à 19:50
J'ai aussi la même erreur depuis hier, sur un programme delphi qui fonctionnait depuis plus d'un an sans aucun problème. (station W2000 pro vers W2000 serveur).
La seule chose que j'ai effectuée depuis hier ce sont Updates automatique proposés par Microsoft.
La cause vient surement de là ???
0
Rejoignez-nous