Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1672 connectés 

  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#] Analyser des trames udp sur pocket pc

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[C#] Analyser des trames udp sur pocket pc

n°1750084
Dead Psych​o
Pika pika
Posté le 23-06-2008 à 10:18:43  profilanswer
 

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
mood
Publicité
Posté le 23-06-2008 à 10:18:43  profilanswer
 

n°1750370
moi23372
Posté le 23-06-2008 à 21:11:55  profilanswer
 

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.

n°1750447
Dead Psych​o
Pika pika
Posté le 24-06-2008 à 08:03:24  profilanswer
 

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 :)

n°1752600
moi23372
Posté le 28-06-2008 à 08:39:34  profilanswer
 

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.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  C#/.NET managed

  [C#] Analyser des trames udp sur pocket pc

 

Sujets relatifs
Demande d'aide pour programmation en Cperte d'evenements inter thread C++
[C++] Erreur SzrmdirNEED HELP un débutant C# inclusion de classe
define probleme avec C[C++] Mini proj pour se logger sur une page ASP
Premier programme C (manip. de fichiers txt)[AIDE] bug mon projet C
un mini projet en C (j ai besoin d aide)[résolu]Classes pour faciliter l'utilisation de sockets C, en C++
Plus de sujets relatifs à : [C#] Analyser des trames udp sur pocket pc


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR