bonjours, je cherche à utiliser une socket UDP en cpp et la lecture fonctionne très bien, en simple ou multicast par contre l’envoie de données ne fonctionne pas

je communique avec un serveur en java (d’où le fait que je cache que le recv est bon ) qui est sensé être compatible. (en tout cas il l'est pour l'aller du message)

voila ma fonction send:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
bool    SocketUDP::sendTo(char* buff,int length){
    struct sockaddr_in si_other;
    int slen=sizeof(si_other);
 
    memset((char *) &si_other, 0, sizeof(si_other));
    si_other.sin_family = AF_INET;
    si_other.sin_port = htons(port);
    if (inet_aton(host.c_str(), &si_other.sin_addr)==0) {
        cout<<"Erreur d'addressage"<<endl;
        return false;
    }
    if (sendto(sockDesc, buff, length, 0, (const sockaddr*)&si_other, slen)==-1){
        cout<<"Erreur de sendTo"<<endl;
        return false;
    }
    return true;
}
elle ne me retourne aucune erreur et semble fonctionner mais rien ne passe sur le réseau...

au préalable j'initialise ma socket comme suit:

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
bool    SocketUDP::init(){
    if((sockDesc = socket(AF_INET, SOCK_DGRAM, 0))<=0)
        return false;
 
    int opval = 1;
    if(setsockopt(sockDesc,SOL_SOCKET,SO_REUSEADDR,&opval,sizeof opval) < 0)
        return false;
    sockaddr_in localAddr;
    memset(&localAddr, 0, sizeof(localAddr));
    localAddr.sin_family = AF_INET;
    localAddr.sin_addr.s_addr = htonl(INADDR_ANY);
    localAddr.sin_port = htons(port);
 
    if (bind(sockDesc, (sockaddr *) &localAddr, sizeof(sockaddr_in)) < 0)
        return false;
    return true;
}

l'ip et le port sont bon (le serveur fonctionne parfaitement, il tourne actuellement avec des clients java).
voila, si quelqu'un a une idée moi je suis complétement bloqué dessus