Bonjour On détaille ici une fonction faisant partie de notre renifleur de paquets
<funcprototype> void got_packet(u_char *args, const struct pcap_pkthdr *header, const u_char *packet); </funcprototype>
je laisse à votre sagacité le soin de rectifier d'éventuelles approximations .
Let's examine this in more detail: first, you'll notice that the function has a void return type. This is logical, because pcap_loop() wouldn't know how to handle a return value anyway. The first argument corresponds to the last argument of pcap_loop(). Whatever value is passed as the last argument to pcap_loop() is passed to the first argument of our callback function, every time the function is called. The second argument is the pcap header, which contains information about when the packet was sniffed, how large it is, etc. The pcap_pkthdr structure is defined in pcap.h:
Examinons ceci plus en détails : premièrement, vous noterez que la fonction comporte un type de retour<foreignphrase>void</foreignphrase>. C'est logique, parce que <function>pcap_loop()</function> ne saurait de toute façon comment manipuler une valeur de retour. Le premier argument correspond au dernier argument de <function>pcap_loop()</function>. Quelque soit la valeur passée pendant que le dernier argument de <function>pcap_loop()</function> est transmis au premier argument de notre function de rappel, chaque fois que la fonction est appelée. Le second argument est l'en-tête <application>pcap</application>r, qui indique quand le paquet a été reniflé, sa largeur, etc. La structure de <function>pcap_pkthdr</function> est définie dans <prototype>pcap.h</prototype> :
merci