forked from KNEMC/KLALB
优化代码,性能暴涨
This commit is contained in:
@@ -9,40 +9,34 @@ import java.net.Inet6Address;
|
||||
import java.net.UnknownHostException;
|
||||
import java.nio.ByteBuffer;
|
||||
|
||||
import org.kne.cloud.network.ipv6.Inet6AddressGroup;
|
||||
|
||||
public class VADDRPacket extends KLALBPacket {
|
||||
public Inet6Address getVaddr() {
|
||||
private static final int HEADER_LENGTH=18;
|
||||
public Inet6AddressGroup getVaddr() {
|
||||
byte[]b=new byte[16];
|
||||
header.get(1, b);
|
||||
klalbHeader.get(1, b);
|
||||
try {
|
||||
return (Inet6Address) Inet6Address.getByAddress(b);
|
||||
return new Inet6AddressGroup( (Inet6Address) Inet6Address.getByAddress(b),klalbHeader.get(17)&0xff);
|
||||
} catch (UnknownHostException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
public VADDRPacket(Inet6Address vaddr) {
|
||||
super(VADDR);
|
||||
header.put(1, vaddr.getAddress());
|
||||
public VADDRPacket(Inet6AddressGroup vaddr) {
|
||||
super(VADDR,HEADER_LENGTH);
|
||||
klalbHeader.put(1, vaddr.getAddress().getAddress());
|
||||
klalbHeader.put(17,(byte) vaddr.getPrefixLength());
|
||||
}
|
||||
|
||||
public VADDRPacket(ByteBuffer bb) {
|
||||
super(bb);
|
||||
super(bb,HEADER_LENGTH);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "VADDR "+getVaddr().getHostAddress();
|
||||
}
|
||||
|
||||
@Override
|
||||
protected int getHeaderSize() {
|
||||
return super.getHeaderSize()+16;
|
||||
}
|
||||
|
||||
@Override
|
||||
public long getLength() {
|
||||
return super.getLength()+16;
|
||||
return "VADDR "+getVaddr();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user