📄 flowmetric.java
字号:
package com.ict.netcom2.metric;
import java.nio.ByteBuffer;
import java.nio.ByteOrder;
import com.ict.netcom2.util.*;
/**
* 基于流的统计信息
* 120 bytes
*/
public class FlowMetric {
public static final int length = 120;
public int active_ippair; // 并发IPPair数目???活的还是死的?
public int active_flow; // 并发流数目
public int newadd_flow; // 新增流数目
public int died_flow; // 老化的流数目
public FlowPktDistMetric pktsize_dist = new FlowPktDistMetric(); // 流大小分布(by packet)
public FlowByteDistMetric bytesize_dist = new FlowByteDistMetric(); // 流大小分布(by byte)
public FlowDurDistMetric duration_dist = new FlowDurDistMetric(); // 持续时间分布
public void store(byte[] result) {
if (result.length != length) {
System.err.println("[FlowMetric.store()] param len wrong.");
}
ByteBuffer buf = ByteBuffer.wrap(result);
buf.order(ByteOrder.LITTLE_ENDIAN);
this.active_ippair = buf.getInt();
this.active_flow = buf.getInt();
this.newadd_flow = buf.getInt();
this.died_flow = buf.getInt();
byte[] b = new byte[FlowPktDistMetric.length];
buf.get(b);
pktsize_dist.store(b);
b = new byte[FlowByteDistMetric.length];
buf.get(b);
bytesize_dist.store(b);
b = new byte[FlowDurDistMetric.length];
buf.get(b);
duration_dist.store(b);
}
public static void main(String[] args) {
byte[] result = {0,0,0,0,0,0,0,1,
0,0,0,0,0,0,0,2,
0,0,0,3,0,0,0,-1};
ByteBuffer buf = ByteBuffer.wrap(result);
byte[] bb = new byte[8];
byte[] cc = new byte[8];
buf.getLong();
Shower.showInVal((buf.get(bb, 0, 8)).array());
buf.get(cc);
Shower.showInVal(bb);
Shower.showInVal(cc);
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -