Je réalise une appli de surveillance réseau en java avec jpcap. Ayant besoin également d'envoyer des paquets/trames sur le réseau je me suis lancé dans la création d'un petit wrapper pour libnet en utilisant JNI.
J'ai donc commencé par tenter l'envoi de requetes arp sur le réseau. Cela fonctionne, enfin presque
Voila le code de la méthode native en c (largement dérive d'un bout de code trouvé sur le net ):
Lorsque j'appelle une première fois cette méthode depuis mon code java tout se passe bien, je vois le paquet partir ainsi que la réponse du pc visé.
Lorsque j'appelle une deuxième fois cette méthode j'ai ce joli message :
# # An unexpected error has been detected by HotSpot Virtual Machine: # # SIGSEGV (0xb) at pc=0x45f7bc7a, pid=17405, tid=1173732272 # # Java VM: Java HotSpot(TM) Client VM (1.5.0_03-b07 mixed mode, sharing) # Problematic frame: # C [libjnet.so+0x3c7a] libnet_pblock_coalesce+0x26a # # An error report file with more information is saved as hs_err_pid17405.log # # If you would like to submit a bug report, please visit: # http://java.sun.com/webapps/bugreport/crash.jsp # Aborted
Voila donc mon problème, je suis dans l'incapacité d'envoyer 2 requetes arp en appelant 2 fois la même méthode (par contre en appelant libnet_write() 2 fois de suite dans le code c, 2 paquets partent...)
Bref c'est la me...
J'ai vu que certains ici connaissent bien JNI et d'autres le c (que je connais relativement peu) donc je m'adresse à vous en ultime recours
Merci d'avance
ps : je peux mettre en ligne le rapport d'erreurs si ca peut vous aider.
[EDIT] Bon bah voila ce qui arrive qd on copie/colle du code depuis le net sans relire attentivement Suffisait de virer le static (ligne 52) sur les ptag arp et eth. Voila j'edit au cas ou
Marsh Posté le 12-08-2005 à 01:13:42
Bonjour à tous,
Je réalise une appli de surveillance réseau en java avec jpcap. Ayant besoin également d'envoyer des paquets/trames sur le réseau je me suis lancé dans la création d'un petit wrapper pour libnet en utilisant JNI.
J'ai donc commencé par tenter l'envoi de requetes arp sur le réseau. Cela fonctionne, enfin presque
Voila le code de la méthode native en c (largement dérive d'un bout de code trouvé sur le net ):
Voila le problème :
Lorsque j'appelle une première fois cette méthode depuis mon code java tout se passe bien, je vois le paquet partir ainsi que la réponse du pc visé.
Lorsque j'appelle une deuxième fois cette méthode j'ai ce joli message :
#
# An unexpected error has been detected by HotSpot Virtual Machine:
#
# SIGSEGV (0xb) at pc=0x45f7bc7a, pid=17405, tid=1173732272
#
# Java VM: Java HotSpot(TM) Client VM (1.5.0_03-b07 mixed mode, sharing)
# Problematic frame:
# C [libjnet.so+0x3c7a] libnet_pblock_coalesce+0x26a
#
# An error report file with more information is saved as hs_err_pid17405.log
#
# If you would like to submit a bug report, please visit:
# http://java.sun.com/webapps/bugreport/crash.jsp
#
Aborted
Voila donc mon problème, je suis dans l'incapacité d'envoyer 2 requetes arp en appelant 2 fois la même méthode (par contre en appelant libnet_write() 2 fois de suite dans le code c, 2 paquets partent...)
Bref c'est la me...
J'ai vu que certains ici connaissent bien JNI et d'autres le c (que je connais relativement peu) donc je m'adresse à vous en ultime recours
Merci d'avance
ps : je peux mettre en ligne le rapport d'erreurs si ca peut vous aider.
[EDIT] Bon bah voila ce qui arrive qd on copie/colle du code depuis le net sans relire attentivement
Suffisait de virer le static (ligne 52) sur les ptag arp et eth. Voila j'edit au cas ou
Message édité par tieuma le 12-08-2005 à 19:27:50