我需要提取有关两个IP地址的两条信息,然后将这些信息和两个地址写入。 我在考虑一组IP地址对,但我可以通过哪些数据结构写出所有这些信息? 感谢
答案 0 :(得分:1)
PcapPacketHandler<String> jPacketHandler = new PcapPacketHandler<String>(){
int totalLength = 0;
public void nextPacket(PcapPacket packet, String user) {
Ip4 ip = new Ip4();
String sIP;
String dIP;
if (packet.hasHeader(ip) == false){
return;
}
totalLength = totalLength+ ip.getPayloadLength();
sIP = org.jnetpcap.packet.format.FormatUtils.ip(ip.source());
dIP = org.jnetpcap.packet.format.FormatUtils.ip(ip.destination());
System.out.println("SIP = "+sIP+" "+"destIP = "+dIP+" "+"Payload Length = "+ip.getPayloadLength());
System.out.println("Total Length = "+totalLength);
}
};
pcap.loop(10, jPacketHandler, "");
pcap.close();
答案 1 :(得分:0)
即使这不是Javascript应用程序,您也可以使用JSON,因为它提供了一种简洁的方式来一起读取/存储多个数据。查看JSON Java Documentation了解有关课程的详细信息,并下载相关资源。
答案 2 :(得分:0)
如果您只是编写信息,则可以始终使用Hashmap。除非你知道你打算用数据做什么,否则很难说什么是最好的。
答案 3 :(得分:0)
只需创建一个自定义类(POJO),并根据您的编写方式将其设为Serializable
。这样你就可以清楚地命名你的字段(以及getter和setter),使你的代码更容易阅读(和扩展)。
答案 4 :(得分:0)
这样的事情......
class BigClass { //<br>
private IPAdreess addr1; //<br>
private IPAddress addr2; //<br>
private SomeInfo additionalInfo;//<br>
//implement accessors//<br>
//implement equals, hashCode//<br>
}//<br>
IPAddress,SomeInfo是您的用户类型。在java中,InetAddress表示IP地址。这可能远远超过您的自定义类型。
选择合适的“集合”数据结构可以决定很多因素。你想保留订单吗?你是通过多个线程填充它吗?您在集合中期望的条目数量是多少? 100S?百万?
为什么不发布您的代码?用真实代码提供反馈可能更容易..
答案 5 :(得分:0)
我不太明白你想要绘制的图形。我会做的是
我想象一下沿线的查询
select source_ip, dest_ip, sum(time), sum(sent_bytes) group by source_ip, dest_ip