[C#] Analyser des trames udp sur pocket pc

Analyser des trames udp sur pocket pc [C#] - C#/.NET managed - Programmation

Marsh Posté le 23-06-2008 à 10:18:43    

Bien le bonjour,  :hello:  
 
Je suis en train de coder une application pour pocket pc devant analyser des trames udp.
 
 
J'ai trouvé un morceau de code sur le net.
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. private void cmd_start_Click(object sender, EventArgs e)
  2.         {
  3.             if (InterfaceComboBox.Text == "" )
  4.             {
  5.                 MessageBox.Show("Sélectionnez l'adresse à analyser." );
  6.                 return;
  7.             }
  8.             try
  9.             {
  10.                 if (!bContinueCapturing)
  11.                 {
  12.                     // on commence à analyser les packets
  13.                     cmd_start.Text = "&Stop";
  14.                     bContinueCapturing = true;
  15.         mainSocket = new Socket(AddressFamily.InterNetwork,
  16.                         SocketType.Raw, ProtocolType.IP);
  17.                     //le socket doit analyser l'adresse IP sélectionnée
  18.                     mainSocket.Bind(new IPEndPoint(IPAddress.Parse(InterfaceComboBox.Text), 0));
  19.                     //socket  options
  20.                     mainSocket.SetSocketOption(SocketOptionLevel.IP,           
  21.                                                SocketOptionName.HeaderIncluded,
  22.                                                true);                           
  23.                    
  24.                     byte[] byTrue = new byte[4] { 1, 0, 0, 0 };
  25.                     byte[] byOut = new byte[4];
  26.                     //Socket.IOControl = WSAIoctl fonction Winsock 2
  27.                     int SIO_RCVALL = unchecked((int)0x98000001);
  28.                     mainSocket.IOControl(SIO_RCVALL,              //Equivalent to IOControlCode constant (ne passe pas dans le CF) probleme ??
  29.                                          byTrue,
  30.                                          byOut);
  31.                     //On commence à recevoir les packets
  32.                     mainSocket.BeginReceive(byteData, 0, byteData.Length, SocketFlags.None,
  33.                         new AsyncCallback(OnReceive), null);
  34.                 }
  35.                 else
  36.                 {
  37.                    cmd_start.Text = "&Start";
  38.                     bContinueCapturing = false;
  39.                     //Pour arrêter la capture des packets on stop le socket
  40.                     mainSocket.Close();
  41.                 }
  42.             }
  43.             catch (Exception ex)
  44.             {
  45.                 MessageBox.Show(ex.Message);  //--> message d'erreur vient de là ?
  46.             }
  47.         }


 
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 commence tout juste la c# (et de même pour la programmation sur ppc), si quelqu'un peut me venir en aide je le remercie d'avance  :)  
 
 
Merci et bonne journée


Message édité par Dead Psycho le 24-06-2008 à 08:11:52
Reply

Marsh Posté le 23-06-2008 à 10:18:43   

Reply

Marsh Posté le 23-06-2008 à 21:11:55    

en gros ce que tu veux faire, c'est sniffer les trames?
En ethernet ça va fonctionner, mais en wifi j'en doute car le fonctionnement est très différent.

Reply

Marsh Posté le 24-06-2008 à 08:03:24    

Oui en gros c'est un sniffer.
Et donc en wifi c'est quasi impossible ?
Parce que là ca marche bien en Ethernet mais Wifi impossible !
 
Merci à toi pour la réponse :)

Reply

Marsh Posté le 28-06-2008 à 08:39:34    

je sais que pour analyser les trames en wifi, faut un driver spécial pour la carte wifi. Généralement pas dispo sous windows. Avec linux, ça existe et trouvable facilement.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed