Bonjour,
N'ayant pas trouvé de rubrique consacrée à la programmation windows CE or mobile, je me permets donc de poster ici,

je developpe sous visual studio 2005, en MFC, et j'utilise windows sockets pour l'échange de data entre PC et Smartphone (windows mobile 6 pro)

le code fonctionne sur pc, en fait ce n'est qu'une application simple qui reçoit toutes les trames multicast udp

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
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
 
Code:
 
if (WSAStartup(MAKEWORD(2,2), &wsd) != 0)
    {     
        //printf("WSAStartup() failed: %d\n", GetLastError());
        return -1;
    }
 
SOCKET s = WSASocket(PF_INET, SOCK_RAW, IPPROTO_UDP, NULL, 0, WSA_FLAG_OVERLAPPED);
if (s == INVALID_SOCKET )
    {
        //printf("WSASocket() failed: %d\n", WSAGetLastError());
        return -1;
    }
 
SOCKADDR_IN if0;
 
if0.sin_family = AF_INET;
if0.sin_port = htons(0);
//192.0.63.36 is my ip adress
if0.sin_addr.s_addr = inet_addr("192.0.63.36");
 
if (bind(s, (SOCKADDR *)&if0, sizeof(if0)) == SOCKET_ERROR)
    {
        //printf("bind() failed: %d\n", WSAGetLastError());
        return -1;
    }
 
unsigned int  optval = 1;
if (WSAIoctl(s, SIO_RCVALL_MCAST, &optval, sizeof(optval),
            NULL, 0, &dwBytesRet, NULL, NULL) == SOCKET_ERROR)
    {
        //printf("WSAIotcl(%d) failed; %d\n", dwIoControlCode,WSAGetLastError());
        return -1;       
    }
 
...
à l'exécution, lors de l'appel de WSAIoctl , j'ai l'erreur 10022 (WSAEINVAL)
qui dit que l'argument n'est pas correct.

J'ai passé 2 jours à chercher sur internet, des messages similaires ont été postés, mais jamais de réponse claire, certains parlent de non compatibilité sous windows xp, mais je rappelle que je suis sous windows mobile 6

Est ce que SIO_RCVALL_MCAST / ou SIO_RCVALL n'est pas compatible avec windows mobile6?

Quelqu'un a déja rencontré le même type de problème ou pas?

car selon la doc msdn, cette option est normalement compatible avec windows CE5.
Je ne trouve rien non plus sur les forums de microsoft

Je suis bloqué depuis plusieurs jours, toute aide sera bienvenue
merci,