public NativeDatagramPacket toDatagramPacket(InetAddress destinationAddress) { return new NativeDatagramPacket(m_packetData.duplicate(), destinationAddress, 0); }
@Override public int send(NativeDatagramPacket p) { sockaddr_in destAddr = new sockaddr_in(p.getAddress(), p.getPort()); ByteBuffer buf = p.getContent(); return sendto(getSock(), buf, buf.remaining(), 0, destAddr, destAddr.size()); }
@Override public int receive(NativeDatagramPacket p) throws UnknownHostException { sockaddr_in6 in_addr = new sockaddr_in6(); int[] szRef = new int[] { in_addr.size() }; ByteBuffer buf = p.getContent(); int n = recvfrom(getSock(), buf, buf.capacity(), 0, in_addr, szRef); p.setLength(n); p.setAddress(in_addr.getAddress()); p.setPort(in_addr.getPort()); return n; }
public void run() { try { NativeDatagramPacket datagram = new NativeDatagramPacket(65535); while (!isFinished()) { getPingSocket().receive(datagram); long received = System.nanoTime(); ICMPv6Packet icmpPacket = new ICMPv6Packet(getIPPayload(datagram)); V6PingReply echoReply = icmpPacket.getType() == Type.EchoReply ? new V6PingReply(icmpPacket, received) : null; if (echoReply != null && echoReply.isValid()) { // 64 bytes from 127.0.0.1: icmp_seq=0 time=0.069 ms System.out.printf("%d bytes from [%s]: tid=%d icmp_seq=%d time=%.3f ms\n", echoReply.getPacketLength(), datagram.getAddress().getHostAddress(), echoReply.getIdentifier(), echoReply.getSequenceNumber(), echoReply.elapsedTime(TimeUnit.MILLISECONDS) ); for (PingReplyListener listener : getListeners()) { listener.onPingReply(datagram.getAddress(), echoReply); } } } } catch(Throwable e) { m_throwable.set(e); e.printStackTrace(); } }
private ByteBuffer getIPPayload(final NativeDatagramPacket datagram) { return datagram.getContent(); }
@Override public int receive(NativeDatagramPacket p) throws UnknownHostException { sockaddr_in6 in_addr = new sockaddr_in6(); int[] szRef = new int[] { in_addr.size() }; ByteBuffer buf = p.getContent(); int n = recvfrom(getSock(), buf, buf.capacity(), 0, in_addr, szRef); p.setLength(n); p.setAddress(in_addr.getAddress()); p.setPort(in_addr.getPort()); return n; }
@Override public void run() { try { final NativeDatagramPacket datagram = new NativeDatagramPacket(65535); while (!isFinished()) { getPingSocket().receive(datagram); final long received = System.nanoTime(); final ICMPPacket icmpPacket = new ICMPPacket(getIPPayload(datagram)); final V4PingReply echoReply = icmpPacket.getType() == Type.EchoReply ? new V4PingReply(icmpPacket, received) : null; if (echoReply != null && echoReply.isValid()) { // 64 bytes from 127.0.0.1: icmp_seq=0 time=0.069 ms System.out.printf("%d bytes from %s: tid=%d icmp_seq=%d time=%.3f ms%n", echoReply.getPacketLength(), datagram.getAddress().getHostAddress(), echoReply.getIdentifier(), echoReply.getSequenceNumber(), echoReply.elapsedTime(TimeUnit.MILLISECONDS) ); for (PingReplyListener listener : getListeners()) { listener.onPingReply(datagram.getAddress(), echoReply); } } } } catch(final Throwable e) { m_throwable.set(e); e.printStackTrace(); } }
public IPPacket(NativeDatagramPacket datagram) { this(datagram.getContent()); }
@Override public int receive(NativeDatagramPacket p) throws UnknownHostException { sun_sockaddr_in6 in_addr = new sun_sockaddr_in6(); int[] szRef = new int[] { in_addr.size() }; ByteBuffer buf = p.getContent(); int n = recvfrom(getSock(), buf, buf.capacity(), 0, in_addr, szRef); p.setLength(n); p.setAddress(in_addr.getAddress()); p.setPort(in_addr.getPort()); return n; }
@Override public int send(NativeDatagramPacket p) { ByteBuffer buf = p.getContent(); sockaddr_in6 destAddr = new sockaddr_in6(p.getAddress(), p.getPort()); return sendto(getSock(), buf, buf.remaining(), 0, destAddr, destAddr.size()); }
public void run() { try { NativeDatagramPacket datagram = new NativeDatagramPacket(65535); while (!isFinished()) { getPingSocket().receive(datagram); long received = System.nanoTime(); ICMPPacket icmpPacket = new ICMPPacket(getIPPayload(datagram)); V4PingReply echoReply = icmpPacket.getType() == Type.EchoReply ? new V4PingReply(icmpPacket, received) : null; if (echoReply != null && echoReply.isValid()) { // 64 bytes from 127.0.0.1: icmp_seq=0 time=0.069 ms System.out.printf("%d bytes from %s: tid=%d icmp_seq=%d time=%.3f ms\n", echoReply.getPacketLength(), datagram.getAddress().getHostAddress(), echoReply.getIdentifier(), echoReply.getSequenceNumber(), echoReply.elapsedTime(TimeUnit.MILLISECONDS) ); for (PingReplyListener listener : getListeners()) { listener.onPingReply(datagram.getAddress(), echoReply); } } } } catch(Throwable e) { m_throwable.set(e); e.printStackTrace(); } }
private ByteBuffer getIPPayload(final NativeDatagramPacket datagram) { return datagram.getContent(); }
public NativeDatagramPacket toDatagramPacket(InetAddress destinationAddress) { return new NativeDatagramPacket(m_packetData.duplicate(), destinationAddress, 0); }
@Override public int receive(NativeDatagramPacket p) { sockaddr_in in_addr = new sockaddr_in(); int[] szRef = new int[] { in_addr.size() }; ByteBuffer buf = p.getContent(); int n = recvfrom(getSock(), buf, buf.capacity(), 0, in_addr, szRef); p.setLength(n); p.setAddress(in_addr.getAddress()); p.setPort(in_addr.getPort()); return n; }
@Override public int send(NativeDatagramPacket p) { sockaddr_in destAddr = new sockaddr_in(p.getAddress(), p.getPort()); ByteBuffer buf = p.getContent(); return sendto(getSock(), buf, buf.remaining(), 0, destAddr, destAddr.size()); }
@Override public void run() { try { final NativeDatagramPacket datagram = new NativeDatagramPacket(65535); while (!isFinished()) { getPingSocket().receive(datagram); final long received = System.nanoTime(); final ICMPv6Packet icmpPacket = new ICMPv6Packet(getIPPayload(datagram)); final V6PingReply echoReply = icmpPacket.getType() == Type.EchoReply ? new V6PingReply(icmpPacket, received) : null; if (echoReply != null && echoReply.isValid()) { // 64 bytes from 127.0.0.1: icmp_seq=0 time=0.069 ms System.out.printf("%d bytes from [%s]: tid=%d icmp_seq=%d time=%.3f ms%n", echoReply.getPacketLength(), datagram.getAddress().getHostAddress(), echoReply.getIdentifier(), echoReply.getSequenceNumber(), echoReply.elapsedTime(TimeUnit.MILLISECONDS) ); for (PingReplyListener listener : getListeners()) { listener.onPingReply(datagram.getAddress(), echoReply); } } } } catch(final Throwable e) { m_throwable.set(e); e.printStackTrace(); } }
public IPPacket(NativeDatagramPacket datagram) { this(datagram.getContent()); }
public NativeDatagramPacket toDatagramPacket(InetAddress destinationAddress) { return new NativeDatagramPacket(m_packetData.duplicate(), destinationAddress, 0); }
@Override public int receive(NativeDatagramPacket p) { sockaddr_in in_addr = new sockaddr_in(); int[] szRef = new int[] { in_addr.size() }; ByteBuffer buf = p.getContent(); int n = recvfrom(getSock(), buf, buf.capacity(), 0, in_addr, szRef); p.setLength(n); p.setAddress(in_addr.getAddress()); p.setPort(in_addr.getPort()); return n; }
@Override public int send(NativeDatagramPacket p) { sockaddr_in destAddr = new sockaddr_in(p.getAddress(), p.getPort()); ByteBuffer buf = p.getContent(); return sendto(getSock(), buf, buf.remaining(), 0, destAddr, destAddr.size()); }