Bonjour,
Je suis entrain de concevoir une application qui me permet de capter les paquets entrant et sortant de mon interface réseau, pour realise ça j utilise JPCAP et winpcap, mais mon problème c lors de la réception des données j arrive pas à afficher le contenu du paquet, j ai toujours des données compréhensible et des données erronées (je pense que c est à cause de ma méthode de conversion lente), voici mon code :

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
import java.io.FileWriter;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
 
import jpcap.*;
import jpcap.packet.Packet;
 
class Capteur implements PacketReceiver {
	public void receivePacket(Packet packet) {
 
		byte[] packetData = packet.data;
 
		char c ;
 
 
		for (byte b : packetData){
			 c = (char) (b & 0xff);
		    System.out.print(c);
 
		} 
 
 
	}
 
	public static void main(String[] args) throws Exception {
 
 
		NetworkInterface[] devices = JpcapCaptor.getDeviceList();
 
 
 
			for (int i = 0; i < devices.length; i++) {
				System.out.println(i+" :"+devices[i].name + "(" + devices[i].description+")");
				System.out.println("    data link:"+devices[i].datalink_name + "("
						+ devices[i].datalink_description+")");
				System.out.print("    MAC address:");
				for (byte b : devices[i].mac_address)
					System.out.print(Integer.toHexString(b&0xff) + ":");
				System.out.println();
				for (NetworkInterfaceAddress a : devices[i].addresses)
					System.out.println("    address:"+a.address + " " + a.subnet + " "
							+ a.broadcast);
 
			JpcapCaptor jpcap = JpcapCaptor.openDevice(devices[0], 2000, false, 20);
 
			jpcap.loopPacket(-1, new Capteur());
		}
	}
}
PS : j ai entendu parler qu il faut utiliser un bufferReader ??? est ce que c vrai
j ai utilisé plusieurs façon de conversion mais sans résultat , aidez moi SVP
Merci d'avance