Gå til innhold

Anbefalte innlegg

Hei!

 

Driver å sliter litt med raw sockets i java. (ikke henvis meg til c a', er ikke jeg som har bestemt at dette på død og liv skal gjøres i java :hrm: )

 

Jobber med jpcap (http://jpcap.sourceforge.net/) og har forsovidt fått det meste til å funke. Tar imot pakker, men når disse blir større enn 82 bytes (?!?), så får jeg ikke med meg data etter 82. byte...

 

Funksjonen "packetArrived()" blir kalt av et PacketCapture objekt definert i jpcap.

 

Noen som har jobba med jpcap og som vet hvordfor jeg bare får de første 82 bytesene med koden under? Det er forresten IPv6 jeg jobber med, så da blir det jo bare 12 bytes igjen til data, noe som er litt lite...

 

Javadoc kan forresten finnes her: http://jpcap.sourceforge.net/javadoc/index.html

 

Er takknemlig for all hjelp!

 

byte data [] = null;

public void packetArrived(Packet packet) {

 

try {

data = packet.getData();

RawSocket.ipVersion = data[0] >> 4;

RawSocket.destinationPort = concatBytes(data[42],data[43]);

RawSocket.sourcePort = concatBytes(data[40],data[41]);

RawSocket.rawPacket = data;

 

} catch (Exception e) {

e.printStackTrace();

}

}

Lenke til kommentar
Videoannonse
Annonse

Er det ikke typisk... Nå har jeg sitti å knødd med dette problemet i mange timer - egentlig dager, så legger jeg inn et foruminnlegg, så tar det 5 minutter før jeg løser problemet...

Man kan definere snapshot lengde for pakkene som blir sniffet... For interreserte, sjekk mulige parametere til funksjonen "open()" i klassen PacketCapture... :w00t:

Lenke til kommentar

Opprett en konto eller logg inn for å kommentere

Du må være et medlem for å kunne skrive en kommentar

Opprett konto

Det er enkelt å melde seg inn for å starte en ny konto!

Start en konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...