帮忙看一看代码,很迷惘,望不吝赐教。
来源:互联网 发布:机加工工艺软件 编辑:程序博客网 时间:2024/05/19 02:24
代码如下
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import jpcap.JpcapCaptor;
import jpcap.NetworkInterface;
import jpcap.PacketReceiver;
import jpcap.packet.IPPacket;
import jpcap.packet.Packet;
import jpcap.packet.TCPPacket;
/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class MainFrame extends javax.swing.JFrame implements ActionListener{
private JPanel showPanel;
private JScrollPane jScrollPane;
private JButton stop;
private JTable jTable1;
private JButton start;
private JTable jTable;
private JScrollPane jScrollPane3;
private JPanel buttonPanel;
Vector rows,columns;
static JpcapCaptor captor=null;
/**
* Auto-generated main method to display this JFrame
*/
public static void main(String[] args) {
MainFrame inst = new MainFrame();
inst.setVisible(true);
}
public MainFrame() {
super();
initGUI();
}
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
{
showPanel = new JPanel();
FlowLayout showPanelLayout = new FlowLayout();
showPanel.setLayout(showPanelLayout);
getContentPane().add(showPanel, BorderLayout.NORTH);
showPanel.setPreferredSize(new java.awt.Dimension(392, 184));
{
jScrollPane = new JScrollPane();
showPanel.add(jScrollPane);
jScrollPane.setPreferredSize(new java.awt.Dimension(493, 192));
{
rows=new Vector();
columns= new Vector();
columns.addElement("数据报时间");
columns.addElement("源IP地址");
columns.addElement("目的IP地址");
columns.addElement("首部长度");
columns.addElement("数据长度");
columns.addElement("是否分段");
columns.addElement("分段偏移量");
columns.addElement("首部内容");
columns.addElement("数据内容");
DefaultTableModel jTableModel = new DefaultTableModel();
jTableModel.setDataVector(rows,columns);
jTable = new JTable();
jScrollPane.setViewportView(jTable);
jTable.setModel(jTableModel);
jTable.getTableHeader().setBounds(0, 0, 147, 28);
}
}
{
jScrollPane3 = new JScrollPane();
showPanel.add(jScrollPane3);
jScrollPane3.setPreferredSize(new java.awt.Dimension(185, 192));
{
rows=new Vector();
columns= new Vector();
columns.addElement("基于web捕获用户名口令字");
DefaultTableModel jTable1Model = new DefaultTableModel();
jTable1Model.setDataVector(rows,columns);
jTable1 = new JTable();
jScrollPane3.setViewportView(jTable1);
jTable1.setModel(jTable1Model);
}
}
}
{
buttonPanel = new JPanel();
getContentPane().add(buttonPanel, BorderLayout.SOUTH);
buttonPanel.setPreferredSize(new java.awt.Dimension(752, 80));
{
start = new JButton();
buttonPanel.add(start);
start.setText("/u6293/u5305");
start.setPreferredSize(new java.awt.Dimension(64, 28));
start.setActionCommand("start");
start.addActionListener(this);
}
{
stop = new JButton();
buttonPanel.add(stop);
stop.setText("/u505c/u6b62");
stop.setBounds(-13, -64, 56, 22);
stop.setPreferredSize(new java.awt.Dimension(64, 28));
stop.addActionListener(this);
stop.setActionCommand("stop");
}
}
pack();
this.setSize(760, 371);
} catch (Exception e) {
e.printStackTrace();
}
}
public JpcapCaptor initial() throws IOException{
NetworkInterface[] devices=JpcapCaptor.getDeviceList();
int index=1;
JpcapCaptor captor=JpcapCaptor.openDevice(devices[index],65535, true,20);
return captor;}
public void deal() throws IOException{
PacketReceiver handler=new PacketReceiver(){
public void receivePacket(Packet packet) {
//System.out.println(packet);
dealPacket(packet);
}
};
initial();
captor.processPacket(1, handler);}
public void dealPacket( Packet packet )
{
try
{
Vector r=new Vector();
String strtmp;
Timestamp timestamp = new Timestamp((packet.sec * 1000) + (packet.usec / 1000));
r.addElement( timestamp.toString() ); //数据报时间
r.addElement(((IPPacket)packet).src_ip.toString()); //源IP地址
r.addElement(((IPPacket)packet).dst_ip.toString()); //目的IP地址
r.addElement( packet.header.length ); //首部长度
r.addElement( packet.data.length ); //数据长度
r.addElement( ((IPPacket)packet).dont_frag == true ? "分段" : "不分段" ); //是否不分段
r.addElement( ((IPPacket)packet).offset ); //数据长度
strtmp = "";
for(int i=0;i<packet.header.length;i++){
strtmp += Byte.toString(packet.header[i]);
}
r.addElement(strtmp); //首部内容
strtmp = "";
for(int i=0;i<packet.data.length;i++){
strtmp += Byte.toString(packet.data[i]);
}
r.addElement(strtmp); //数据内容
rows.addElement(r);
jTable.addNotify();
}
catch( Exception e)
{
}
}
private Thread captureThread;
private void startCaptureThread(){
captureThread = new Thread(new Runnable(){
public void run(){
while(captureThread != null){
try {
deal();
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
captureThread.setPriority(Thread.MIN_PRIORITY);
captureThread.start();
}
void stopcaptureThread(){
captureThread = null;
}
public void stopCapture(){
System.out.println(2);
stopcaptureThread();
}
public void sortPacket(TCPPacket packet){
Vector r=new Vector();
PacketPrinter a=null;
r.addElement(a.passwdsneak(packet));
jTable1.addNotify();}
public void actionPerformed(ActionEvent e) {
String cmd=e.getActionCommand();
if(cmd.equals("start")){
startCaptureThread();
}
else if(cmd.equals("stop")){
stopcaptureThread();
}
}
}
错误如下
Exception in thread "Thread-2" java.lang.ArrayIndexOutOfBoundsException: 1
at MainFrame.initial(MainFrame.java:145)
at MainFrame.deal(MainFrame.java:156)
at MainFrame$2.run(MainFrame.java:206)
at java.lang.Thread.run(Unknown Source)
编译时无错误,一运行就出现错误,望不吝赐教。我已经困扰很久了。
import java.awt.BorderLayout;
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.IOException;
import java.sql.Timestamp;
import java.util.Vector;
import javax.swing.JButton;
import javax.swing.JPanel;
import javax.swing.JScrollPane;
import javax.swing.JTable;
import javax.swing.WindowConstants;
import javax.swing.table.DefaultTableModel;
import javax.swing.table.TableModel;
import jpcap.JpcapCaptor;
import jpcap.NetworkInterface;
import jpcap.PacketReceiver;
import jpcap.packet.IPPacket;
import jpcap.packet.Packet;
import jpcap.packet.TCPPacket;
/**
* This code was edited or generated using CloudGarden's Jigloo
* SWT/Swing GUI Builder, which is free for non-commercial
* use. If Jigloo is being used commercially (ie, by a corporation,
* company or business for any purpose whatever) then you
* should purchase a license for each developer using Jigloo.
* Please visit www.cloudgarden.com for details.
* Use of Jigloo implies acceptance of these licensing terms.
* A COMMERCIAL LICENSE HAS NOT BEEN PURCHASED FOR
* THIS MACHINE, SO JIGLOO OR THIS CODE CANNOT BE USED
* LEGALLY FOR ANY CORPORATE OR COMMERCIAL PURPOSE.
*/
public class MainFrame extends javax.swing.JFrame implements ActionListener{
private JPanel showPanel;
private JScrollPane jScrollPane;
private JButton stop;
private JTable jTable1;
private JButton start;
private JTable jTable;
private JScrollPane jScrollPane3;
private JPanel buttonPanel;
Vector rows,columns;
static JpcapCaptor captor=null;
/**
* Auto-generated main method to display this JFrame
*/
public static void main(String[] args) {
MainFrame inst = new MainFrame();
inst.setVisible(true);
}
public MainFrame() {
super();
initGUI();
}
private void initGUI() {
try {
setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
{
showPanel = new JPanel();
FlowLayout showPanelLayout = new FlowLayout();
showPanel.setLayout(showPanelLayout);
getContentPane().add(showPanel, BorderLayout.NORTH);
showPanel.setPreferredSize(new java.awt.Dimension(392, 184));
{
jScrollPane = new JScrollPane();
showPanel.add(jScrollPane);
jScrollPane.setPreferredSize(new java.awt.Dimension(493, 192));
{
rows=new Vector();
columns= new Vector();
columns.addElement("数据报时间");
columns.addElement("源IP地址");
columns.addElement("目的IP地址");
columns.addElement("首部长度");
columns.addElement("数据长度");
columns.addElement("是否分段");
columns.addElement("分段偏移量");
columns.addElement("首部内容");
columns.addElement("数据内容");
DefaultTableModel jTableModel = new DefaultTableModel();
jTableModel.setDataVector(rows,columns);
jTable = new JTable();
jScrollPane.setViewportView(jTable);
jTable.setModel(jTableModel);
jTable.getTableHeader().setBounds(0, 0, 147, 28);
}
}
{
jScrollPane3 = new JScrollPane();
showPanel.add(jScrollPane3);
jScrollPane3.setPreferredSize(new java.awt.Dimension(185, 192));
{
rows=new Vector();
columns= new Vector();
columns.addElement("基于web捕获用户名口令字");
DefaultTableModel jTable1Model = new DefaultTableModel();
jTable1Model.setDataVector(rows,columns);
jTable1 = new JTable();
jScrollPane3.setViewportView(jTable1);
jTable1.setModel(jTable1Model);
}
}
}
{
buttonPanel = new JPanel();
getContentPane().add(buttonPanel, BorderLayout.SOUTH);
buttonPanel.setPreferredSize(new java.awt.Dimension(752, 80));
{
start = new JButton();
buttonPanel.add(start);
start.setText("/u6293/u5305");
start.setPreferredSize(new java.awt.Dimension(64, 28));
start.setActionCommand("start");
start.addActionListener(this);
}
{
stop = new JButton();
buttonPanel.add(stop);
stop.setText("/u505c/u6b62");
stop.setBounds(-13, -64, 56, 22);
stop.setPreferredSize(new java.awt.Dimension(64, 28));
stop.addActionListener(this);
stop.setActionCommand("stop");
}
}
pack();
this.setSize(760, 371);
} catch (Exception e) {
e.printStackTrace();
}
}
public JpcapCaptor initial() throws IOException{
NetworkInterface[] devices=JpcapCaptor.getDeviceList();
int index=1;
JpcapCaptor captor=JpcapCaptor.openDevice(devices[index],65535, true,20);
return captor;}
public void deal() throws IOException{
PacketReceiver handler=new PacketReceiver(){
public void receivePacket(Packet packet) {
//System.out.println(packet);
dealPacket(packet);
}
};
initial();
captor.processPacket(1, handler);}
public void dealPacket( Packet packet )
{
try
{
Vector r=new Vector();
String strtmp;
Timestamp timestamp = new Timestamp((packet.sec * 1000) + (packet.usec / 1000));
r.addElement( timestamp.toString() ); //数据报时间
r.addElement(((IPPacket)packet).src_ip.toString()); //源IP地址
r.addElement(((IPPacket)packet).dst_ip.toString()); //目的IP地址
r.addElement( packet.header.length ); //首部长度
r.addElement( packet.data.length ); //数据长度
r.addElement( ((IPPacket)packet).dont_frag == true ? "分段" : "不分段" ); //是否不分段
r.addElement( ((IPPacket)packet).offset ); //数据长度
strtmp = "";
for(int i=0;i<packet.header.length;i++){
strtmp += Byte.toString(packet.header[i]);
}
r.addElement(strtmp); //首部内容
strtmp = "";
for(int i=0;i<packet.data.length;i++){
strtmp += Byte.toString(packet.data[i]);
}
r.addElement(strtmp); //数据内容
rows.addElement(r);
jTable.addNotify();
}
catch( Exception e)
{
}
}
private Thread captureThread;
private void startCaptureThread(){
captureThread = new Thread(new Runnable(){
public void run(){
while(captureThread != null){
try {
deal();
} catch (IOException e) {
e.printStackTrace();
}
}
}
});
captureThread.setPriority(Thread.MIN_PRIORITY);
captureThread.start();
}
void stopcaptureThread(){
captureThread = null;
}
public void stopCapture(){
System.out.println(2);
stopcaptureThread();
}
public void sortPacket(TCPPacket packet){
Vector r=new Vector();
PacketPrinter a=null;
r.addElement(a.passwdsneak(packet));
jTable1.addNotify();}
public void actionPerformed(ActionEvent e) {
String cmd=e.getActionCommand();
if(cmd.equals("start")){
startCaptureThread();
}
else if(cmd.equals("stop")){
stopcaptureThread();
}
}
}
错误如下
Exception in thread "Thread-2" java.lang.ArrayIndexOutOfBoundsException: 1
at MainFrame.initial(MainFrame.java:145)
at MainFrame.deal(MainFrame.java:156)
at MainFrame$2.run(MainFrame.java:206)
at java.lang.Thread.run(Unknown Source)
编译时无错误,一运行就出现错误,望不吝赐教。我已经困扰很久了。
- 帮忙看一看代码,很迷惘,望不吝赐教。
- 迷惘
- 迷惘
- 迷惘
- 迷惘
- 迷惘
- 迷惘
- 迷惘
- 迷惘
- 迷惘
- 迷惘
- 迷惘
- 迷惘
- 迷惘。。。。。。。
- 看一看
- 看一看
- 看一看
- 学习.net,我很迷惘!!!
- 2000中的数据存储形式(二)
- 如何只用HTML画出一个圆角的Table表格?
- 2000文件组织形式
- 使用Opatch工具应用过渡性Patch
- 如何学习J2EE
- 帮忙看一看代码,很迷惘,望不吝赐教。
- TransformationRule(逻辑实现成关系表的规则)
- 程序语言流行度最新排行榜
- 指南(转)
- 完整迁移
- Winpcap(二)
- 用于执行(计算)字符串表达式的T-SQL存储过程
- 收藏几段SQLServer语句和存储过程
- 是考研,还是工作