Problème pour analyser des trames UDP en wifi
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:
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 :D
Merci et bonne journée ;)