Bien le bonjour,

Je suis en train de coder une application pour pocket pc devant analyser des trames udp.

Le programme trouve d'abord les adresses ip possible à analyser. Il suffit donc d'en sélectionner et de cliquer sur start.
Et là message d'erreur: "La valeur spécifiée n'est pas valide. Nom du paramètre: optionValue."

J'ai coder la même application sur pc (à quelques détails près vu le CF) et il s'avère qu'il marche très bien quand on est connecté en Ethernet, mais en Wifi pareil que sur ppc.

Voilà la partie d'où vient surement le problème:

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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
 
 
 private void cmd_start_Click(object sender, EventArgs e)
        {
            if (InterfaceComboBox.Text == "")
            {
                MessageBox.Show("Sélectionnez l'adresse à analyser.");
                return;
            }
            try
            {
                if (!bContinueCapturing)
                {
                    // on commence à analyser les packets
 
                    cmd_start.Text = "&Stop";
 
                    bContinueCapturing = true;
 
        mainSocket = new Socket(AddressFamily.InterNetwork,
                        SocketType.Raw, ProtocolType.IP);
 
                    //le socket doit analyser l'adresse IP sélectionnée
                    mainSocket.Bind(new IPEndPoint(IPAddress.Parse(InterfaceComboBox.Text), 0));
 
                    //socket  options
                    mainSocket.SetSocketOption(SocketOptionLevel.IP,            
                                               SocketOptionName.HeaderIncluded, 
                                               true);                            
 
 
                    byte[] byTrue = new byte[4] { 1, 0, 0, 0 };
                    byte[] byOut = new byte[4];
 
                    //Socket.IOControl = WSAIoctl fonction Winsock 2
                    int SIO_RCVALL = unchecked((int)0x98000001);
                    mainSocket.IOControl(SIO_RCVALL,              //Equivalent to SIO_RCVALL constant
                        //ds Winsock 2
                                         byTrue,
                                         byOut);
 
                    //On commence à recevoir les packets
                    mainSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None,
                        new AsyncCallback(OnReceive), null);
                }
                else
                {
                   cmd_start.Text = "&Start";
                    bContinueCapturing = false;
                    //Pour arrêter la capture des packets on stop le socket
                    mainSocket.Close();
                }
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);  //--> message d'erreur vient de là ?
            }
        }

Je ne sais pas vraiment si l'erreur vient de cette partie là :/
Mais je ne comprend pas pourquoi ca marcherait en Ethernet et pas en Wifi ?
Surtout qu'en wifi il trouve qu'en même les différentes adresse ip possibles à analyser.
Je fais du c# depuis peu (et encore moins sur ppc), si quelqu'un peut me venir en aide je le remercie d'avance


Merci et bonne journée