Ezekiel69
Messages postés5Date d'inscriptionvendredi 10 janvier 2003StatutMembreDernière intervention25 avril 2005
-
10 janv. 2004 à 13:50
cs_domi91
Messages postés1Date d'inscriptiondimanche 15 février 2004StatutMembreDernière intervention15 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();
}
cs_aardman
Messages postés1905Date d'inscriptionmercredi 22 janvier 2003StatutMembreDernière intervention17 septembre 20123 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.
cs_domi91
Messages postés1Date d'inscriptiondimanche 15 février 2004StatutMembreDernière intervention15 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à ???