📄 mainfrm.java
字号:
return;
}
if (temp.equals("SEND")) {
packetHandler.sendPacket(PacketHandler.PACKET_TYPE_ARP);
return;
}
if (temp.equals("PACKET-LOGGER")) {
this.startLogPacket(3, true, true);
this.p_Center.add(this.initPacketLoggerPanel(this.getPacketLoggerThreads()));
this.p_Center.updateUI();
pack();
((JButton) arg.getSource()).setEnabled(false);
return;
}
if (temp.equals("PACKET-ANALYZER")) {
this.startAnalyzePacket(this.getPacketAnalyzerThreads());
this.p_Center.add(this.initPacketAnalyzerPanel(this.getPacketAnalyzerThreads()));
this.p_Center.updateUI();
pack();
((JButton) arg.getSource()).setEnabled(false);
return;
}
if (temp.equals("EXIT"))
System.exit(0);
}
/**
* @param args
*/
public static void main(String[] args) {
String list[] = NIC.getInterfaceNames();
MainFrm m = new MainFrm();
m.logger.setVisible(true);
InitialConfigFrame choose = m.new InitialConfigFrame(m);
LabelUpdater updater=m.new LabelUpdater();
choose.setInterfaceList(list);
m.setLocationRelativeTo(null);
choose.setLocationRelativeTo(m);
m.setVisible(true);
choose.setVisible(true);
updater.setRefreshInSecond(m.getLabelUpdaterRefreshRate());
updater.start();
}
class LabelUpdater extends Thread{
private int refreshInSecond=10;
private int usedMemory=0;
private int previousDataReceived=0,currentDataReceived=0,currentSpeedrate=0;
private LabelUpdater(){
}
protected void setRefreshInSecond(int refreshInSecond) {
this.refreshInSecond = refreshInSecond;
}
public void run(){
int oriPacketSaved=0,prsdPacketSaved=0;
while(true){
try {
Thread.currentThread().sleep(1000*refreshInSecond);
} catch (InterruptedException e) {
e.printStackTrace();
}
lbl_TotalPacketReceived.setText(MainFrm.TOTAL_PACKET_RECEIVED+packetHandler.getPacketTotalReceived());
usedMemory=(MainFrm.MAX_MEMORY-Math.round(Runtime.getRuntime().freeMemory()/1048576));
pgb_MemoryUsage.setValue(usedMemory);
pgb_MemoryUsage.setString(usedMemory+"M"+MainFrm.PROGRESSBAR_STRING);
currentDataReceived=packetHandler.getTotalDataReceived();
currentSpeedrate=(currentDataReceived-previousDataReceived)/refreshInSecond/1024;
previousDataReceived=currentDataReceived;
pgb_CurrentSpeedrateInKB.setValue(currentSpeedrate);
pgb_CurrentSpeedrateInKB.setString(currentSpeedrate+MainFrm.PROGRESSBAR_MAXSPEED_STRING);
lbl_PacketPool_Packet.setText(Integer.toString(pool.getPacketCount()));
lbl_PacketPool_OriginalPacket.setText(Integer.toString(pool.getOriginalPacketCount()));
lbl_PacketPool_ProcessedPacket.setText(Integer.toString(pool.getProcessedPacketCount()));
if(packetLogger!=null){
oriPacketSaved=prsdPacketSaved=0;
for(int i=0;i<packetLogger.length;i++){
lbl_PacketLogger_OriPacketReceived[i].setText(Integer.toString(packetLogger[i].getTotalReceivedOriPacket()));
lbl_PacketLogger_PrsdPacketReceived[i].setText(Integer.toString(packetLogger[i].getTotalReceivedProPacket()));
lbl_PacketLogger_OriPacketStack[i].setText(Integer.toString(packetLogger[i].getCurrentOriCapcity()));
lbl_PacketLogger_PrsdPacketStack[i].setText(Integer.toString(packetLogger[i].getCurrentProCapcity()));
oriPacketSaved+=packetLogger[i].getTotalSavedOriPacket();
prsdPacketSaved+=packetLogger[i].getTotalSavedPropacket();
}
}
if(packetAnalyzer!=null){
for(int i=0;i<packetAnalyzer.length;i++){
lbl_PrsPacket_Fetched[i].setText(Integer.toString(packetAnalyzer[i].getPacketFetched()));
lbl_PrsPacket_Analyzed[i].setText(Integer.toString(packetAnalyzer[i].getPacketProcessed()));
}
}
if(operator!=null){
lbl_MySQL_Status.setText(operator.isOnline()?"ONLINE":"OFFLINE");
lbl_MySQL_OriPacketSaved.setText(Integer.toString(oriPacketSaved));
lbl_MySQL_PrsPacketSaved.setText(Integer.toString(prsdPacketSaved));
}
}
}
}
class InitialConfigFrame extends JDialog implements ActionListener {
JComboBox cbx_Interfaces,cbx_MaxiumSpeed,cbx_PacketAnalyzerThreads,cbx_PacketLoggerThreads,cbx_MainMonitorRefreshRate;
JButton btn_OK, btn_Exit;
JLabel lbl_Text;
String[] InterfaceList;
MainFrm m;
InitialConfigFrame(MainFrm m) {
super(m);
this.m = m;
this.setTitle("CHOOSE INTERFACE");
this.setModal(true);
this.setDefaultCloseOperation(DO_NOTHING_ON_CLOSE);
this.setResizable(false);
cbx_Interfaces = new JComboBox();
btn_OK = new JButton("OK");
btn_Exit = new JButton("EXIT");
lbl_Text = new JLabel();
lbl_Text.setHorizontalAlignment(SwingConstants.CENTER);
cbx_MaxiumSpeed=new JComboBox();
cbx_MaxiumSpeed.addItem("10M/S");
cbx_MaxiumSpeed.addItem("100M/S");
cbx_MaxiumSpeed.addItem("1G/S");
cbx_PacketAnalyzerThreads=new JComboBox();
cbx_PacketLoggerThreads=new JComboBox();
cbx_MainMonitorRefreshRate=new JComboBox();
for(int i=1;i<6;i++){
cbx_PacketAnalyzerThreads.addItem(Integer.toString(i));
cbx_PacketLoggerThreads.addItem(Integer.toString(i));
cbx_MainMonitorRefreshRate.addItem(Integer.toString(i)+" SECOND");
}
cbx_MaxiumSpeed.setSelectedIndex(1);
cbx_PacketAnalyzerThreads.setSelectedIndex(m.getPacketAnalyzerThreads()-1);
cbx_PacketLoggerThreads.setSelectedIndex(m.getPacketLoggerThreads()-1);
cbx_MainMonitorRefreshRate.setSelectedIndex(m.getLabelUpdaterRefreshRate()-1);
// layout
JPanel p_North = new JPanel(new GridLayout(2, 1));
p_North.add(lbl_Text);
p_North.add(cbx_Interfaces);
JPanel p_Center=new JPanel(new GridLayout(4,2));
p_Center.add(new JLabel("MAXIUM SPEED: "));
p_Center.add(cbx_MaxiumSpeed);
p_Center.add(new JLabel("PACKET ANALYZER THREADS: "));
p_Center.add(cbx_PacketAnalyzerThreads);
p_Center.add(new JLabel("PACKET LOGGER THREADS: "));
p_Center.add(cbx_PacketLoggerThreads);
p_Center.add(new JLabel("MAIN MONITOR REFRESH RATE: "));
p_Center.add(cbx_MainMonitorRefreshRate);
JPanel p_South = new JPanel(new GridLayout(1, 2));
p_South.add(btn_OK);
p_South.add(btn_Exit);
this.getContentPane().setLayout(new BorderLayout());
this.getContentPane().add(p_North, BorderLayout.NORTH);
this.getContentPane().add(p_Center, BorderLayout.CENTER);
this.getContentPane().add(p_South, BorderLayout.SOUTH);
btn_OK.addActionListener(this);
btn_Exit.addActionListener(this);
pack();
m.msgProvider.addNewMsg("CHOOSEINTERFACE FRAME INIT DONE.");
}
private void setInterfaceList(final String[] list) {
InterfaceList = list;
lbl_Text.setText(list.length + " interface(s) found.");
for (int i = 0; i < InterfaceList.length; i++) {
cbx_Interfaces.addItem(InterfaceList[i]);
}
pack();
}
@Override
public void actionPerformed(ActionEvent s) {
if (s.getActionCommand().equals("OK")) {
if (cbx_Interfaces.getSelectedItem().toString().indexOf(
"Adapter for generic dialup and VPN capture") >= 0) {
JOptionPane
.showMessageDialog(
this,
"DEVICE [Adapter for generic dialup and VPN capture] IS NOT OPERATABLE.\nSELECT ANOTHER!",
"WORNING", JOptionPane.ERROR_MESSAGE);
return;
}
m.nic.setSelectedNIC(cbx_Interfaces.getSelectedIndex());
m.packetHandler.setSelectedNIC(m.nic);
m.setMaxiumSpeedInKB(cbx_MaxiumSpeed.getSelectedItem().toString());
m.setPacketAnalyzerThreads(cbx_PacketAnalyzerThreads.getSelectedIndex()+1);
m.setPacketLoggerThreads(cbx_PacketLoggerThreads.getSelectedIndex()+1);
m.setLabelUpdaterRefreshRate(cbx_MainMonitorRefreshRate.getSelectedIndex()+1);
m.packetHandler.startListening();
this.setVisible(false);
}
if (s.getActionCommand().equals("EXIT"))
System.exit(0);
}
}
private int getPacketAnalyzerThreads() {
return packetAnalyzerThreads;
}
private int getPacketLoggerThreads() {
return packetLoggerThreads;
}
private int getLabelUpdaterRefreshRate() {
return labelUpdaterRefreshRate;
}
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -