JPcap et serialiser une instance de Packet
Bonjour,
j'utilise JPcap, la version qui permet d'envoyer des paquets.
Pour l'instant, je capture des instances de la classe Packet :
http://netresearch.ics.uci.edu/kfuji...et/Packet.html
Pour chaque paquet capturé, je l'encapsule dans un objet serialisable, que j'envoi sur une connexion Tcp.
Malheureusement, lorsque le serialiseur Java s'attaque à l'instance Packet encapsulé dans mon objet, il lance une exception et me dit que l'objet n'est pas serialisable.
Pendant un instant, j'ai eu l'idée de faire
public class MyPacket extends jpcap.packet.Packet implements java.io.Serializeable
Hélas, la classe PacketReceiver me retourne une instance de la classe Packet : http://netresearch.ics.uci.edu/kfuji...tReceiver.html
et caster un type Père en un type Fils ne marche pas, sauf si l'objet est réellement du type fils (or ici ce n'est pas le cas, il s'agit d'une instance de la classe Packet qui m'ai retourné par l'interface PacketReceiver)
En résumé, sauf si quelqu'un a une idée miraculeuse, je ne peu envoyer sur ma connexion Tcp une instance de la classe Packet telle quelle.
J'ai donc deux idées, la première, sortir les attributs de la classe Packet et encapsuler ces attributs dans mon objets serialisable, envoyer mon objet dans le tunnel tcp, et recréer le paquet de l'autre coté à partir des attributs
(celà m'embête car ce n'est pas vraiment du tunneling: je recréé le paquet....)
L'autre idée serait d'utiliser un autre type de serialisation...XML?
Qui a des idées? des remarques? des conseils?
Il faut que celà marche....absolument...
Merci à tous
Capturer un instance de Packet et la réemettre
Un autre point est:
es ce que capturer un paquet, cad obtenir une instance de la classe Packet et réémettre cette même instance en utilisant la classe JpcapSender réemet bel et bien le même paquet à l'identique?
Au pire, je ferais le test avec un analyseur réseau et deux interfaces, mais si ca peut m'éviter de perdre 1h...
Merci d'avance
Serialiser un objet non serialisable
org.apache.cocoon.util.IOUtils
http://forum.java.sun.com/thread.jsp...sageID=2766098
public static byte[] getBytes(Object obj) throws java.io.IOException{
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ObjectOutputStream oos = new ObjectOutputStream(bos);
oos.writeObject(obj);
oos.flush();
oos.close();
bos.close();
byte [] data = bos.toByteArray();
return data;
}
es ce que celà marche pour recréer l'objet à l'identique?