Covertir byte[] vers string rapidement
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:
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 :cry:, aidez moi SVP
Merci d'avance