




已阅读5页,还剩20页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
精品文档 1欢迎下载 此程序是利用 JPcap 包 抓取通过本地网卡的数据帧 并分析各字段的程序 这是我的一个网络课程设计 具体介绍在下面的实习报告中详细讲述 并附有 源代码 不知道怎么上传文件 所以直接粘贴过来了 目录 第一章 设计目的 任务与要求 1 1 设计的目的 3 1 2 设计的任务与要求 3 第二章 系统分析设计 2 1 系统分析 3 2 2 系统设计 8 第三章 系统实现 3 1 实现过程 10 3 2 采用技术 11 3 3 结果界面 11 3 4 结果分析 16 第四章 心得体会 18 参考文献 19 附录 20 第一章 设计目的 任务与要求 1 1 设计的目的 计算机网络原理 课程是计算机科学与技术专业的重要专业课程之一 随着计算机网络技术的迅速发展和在当今信息社会中的广泛应用 给 计算机 网络 课程的教学提出了新的更高的要求 计 算机网络原理课程设计的目的与任务是为了使学生在课程学习的同时 通过在一个计算机网络环境中的实际操作 巩固 计算机网络原理 课堂教学 所讲授网络的基 本理论 基本概念和方法技术 对现代计算机网络的基本功能 有一个初步的了解 为学生今后使用计算机网络的理论和方法 开发大型 复 杂的集成系统 打下一个 坚实的基础 1 2 设计的任务与要求 本次实验的要求在网络环境 使用编程语言实现捕获网络中的 IP 数据包 解析数据包的内容 将结果显示在标准输出上 并同时写入日志文件 程序的具体要求如下 在标准输出和日志文件中写入捕获的 IP 包的版本 头长度 服务类型 数据包总长度 数据包标识 分段标志 分段偏移值 生存时间 上层协议类 型 头校验和 源 IP 地址和目的 IP 地址等内容 可扩展分析其他协议包 第二章 系统分析设计 2 1 系统分析 实现网络抓包的方法有很多 下面介绍四种 精品文档 2欢迎下载 原始套接字 套接字是网络应用编程接口 应用程序可以使用它进行网络通信而不需要 知道底层发生的细节 有时需要自己生成一些定制的数据包或者功能并希望绕 开 Socket 提供的功能 原始套接字 Raw Socket 满足了这样的要求 原始套 接字能 够生成自己的数据报文 包括报头和数据报本身的内容 通过原始套接字 可 以更加自如地控制 Windows 下的多种协议 而且能够对网络底层的传输机制进 行控制 可以用原始套接字来发送和接收 IP 层以上的原始数据包 如 ICMP TCP UDP 而且能够对网络底层的传输机制进行控制 Raw Socket 的作用主要 有三个方面 1 接收发向本机的 ICMP IGMP 协议包 或者发送这些协议包 2 接收发向本机的 IP 包 3 发送自定义的 IP 包 LibPca p 可以从 http ee lbl gov 找到并下载 LibPcap 它是一个广泛应 用的系统抓包库 LibPcap 是一种与系统无关 采用分组捕获机制的分组捕获 函数库 用于访问数据链路层 它在不同的平台上采用统一的编程接口 使用 LibPcap 编写的程序可自由的跨平台使用 同时 LibPcap 是一个独立于系统接 口的用户级的抓包库 它为底层网络监听提供了可移植框架 它的应用包括网 络统计集合 安全监听 网络调试等 WinPca p 可以从 http winPcap polito it 找到 WinPcap WinPcap 是 LibPcap 的 Windows 版本 它是一个基于 Win32 的捕获数据包和网络分析的体 系结构 它包括一个内核级的包过滤器 一个底层的动态链接库 Packet dll 一个高层并且与系统无关的库 WPcap dll 基于 LibPcap0 6 2 版本 WinPcap 是集成于 Windows95 98 ME NT 2000 和 XP 操作系统的设备驱 动程序 它可以从网卡捕获或者发送原始数据 同时能够过滤并且存储数据包 开发 WinPcap 这个项目的目的在于为 Win32 应用程序提供访问网络底层的能力 它提供了以下四项功能 1 捕获原始数据报 包括共享网络上各主机发送 接收的以及相互之间交换 的数据报 2 在数据报发往应用程序之前 按照自定义的规则将某些特殊的数据报过滤 掉 3 在网络上发送原始的数据报 4 收集网络通信过程中的统计信息 JP ca p 可以从 http netresearch ics uci edu kfujii jpcap doc index html 找到 JPcap JPcap 是一个能够捕获 发送网络数据包的 Java 类库包 这个包用到了 LibPcap 和原始套接字 API 目前 JPcap 在 FreeBSD 3 x Linux RedHat 6 1 Solaris 和 MicrosoftWindows 2000 XP 系统上已经 做过测试 并且支持 Ethernet IPv4 IPv6 ARP RARP TCP UDP ICMPv4 协议 JPcap 是一个 Java 类集合 它为网络数据包的捕获提供接口和系统支持 其最初版本是 2000 年 6 月发布的 JPcap0 01 版 此后几经修改 到 2003 年 4 月发布了最新的 JPcap0 4 版 由于本程序采用 Java 编程语言 所以使用第四种方法 即 JPca p 来实现 抓包 精品文档 3欢迎下载 现在选定了抓包工具 我们还得分析一下所获包的结构 只有弄清楚结构 才能很好的分析捕获包 我们知道 网络软件是由多个协议层次组成的 在每一层里面都有自己的 数据封装 以便实现每个层的功能 OSI 参考模型中定义了 7 层 从低到高分 别是物理层 数据链路层 网络层 传输层 会话层 表示层 应用层 TCP IP 参考模型中定义得比较少 互联网层 网络层 传输层 应用层 主 机至网络层 空白 可以理解为跟 OSI 模型一致 而且我们知道 高层协议 整个协议包是封装到低层协议的数据段中的 所以整体是一个嵌套的结构 如 下图所示 数据链路帧格式如下 以太帧 网络层协议有 IP ICMP ARP 等 IP 分为 IPv4 和 IPv6 这里介绍 IPv4 IPv4 协议格式如下 ICMP 用于控制 每一种控制有独特的格式 由于格式太多 这里不介绍 详情可参考 RFC792 Internet Control Message Protocol ARP 协议格式如下 传输层协议有 TCP UDP TCP 协议格式如下 UDP 协议格式如下 基于 TCP 的应用层协议主要有 HTTP HTTP 协议格式如下 具体数据会不同 这里供参考 HTTP 请求 GET 请求 POST 请求 HTTP 响应 基于 UDP 的应用层协议主要有 DNS DNS 协议格式如下 以上这些协议是本程序所能分析出来的 由于网络协议有上千种 不可能 都去分析 所以其他的协议在此忽略 既然找到抓包工具 弄清协议格式 现在就开始系统设计吧 2 2 系统设计 环境搭建 设计少不了的一项工作就是环境搭建 以下是环境搭建的步骤 jre 安装 最好是最新版本 jre6 精品文档 4欢迎下载 Myeclipse 或者 Eclipse 安装 下载并安装 winpcap 可以下载最新版本 配置 Jpcap 路径 这一步也是最重要的一步 具体路径为 把 Jpcap 文件夹下 lib 文件夹里的 Jpcap dll 复制到 C Program Files Java jre1 6 0 07 bin 文件夹里面 复制到你机器 JRE 文件夹放到 bin 文件夹里面就可以了 其中 JRE 的版本一定要与 Eclipse 配置的版本一致 再把 Jpcap 文件夹下 lib 文件夹里的 Jpcap jar 复制到 C Program Files Java jre1 6 0 07 lib ext 文件夹里面 复制到你机器 JRE 文件夹 lib ext 放到 ext 文件夹里面就可以了 配置 Eclipse 的 JRE 环境 一定需要 选择 Window preferences Java Installed JREs 在 Installed JREs 选择框中选择相应 的 JRE 版本 点 Edit 选择 Add External JARs 选择你的 Jpcap jar 包 C Program Files Java jre1 6 0 07 lib ext 文件夹里 在 Finish 就配置全部完成了 在本程序中 采用图形化界面 根据用户的相关配置进行抓包 具体过程 参考下面实现过程 第三章 系统实现 3 1 实现过程 当环境搭建好后 一起都会显得很简单了 这里说一下原理 在安装 winpcap 时 其实就是利用第三方编写好的程序 他们已经实现了底层和网卡 的交互 数据捕获 并把数据封装好 然后对上层用户提供 API 现在我们就 利用他们提供的 API 即 JPca p 来处理他们封装好的数据 所以在环境搭建中 必须安装 winpcap 和导入 JPca p 库函数 下面是获取包的几个关键步骤 获得网卡接口 通过调用 JPca p 库中 JpcapCaptor 的静态方法 getDeviceList 得到网卡 接口数组 获得某个网卡接口的连接 通过调用 JPca p 库中 JpcapCaptor 的静态方法 openDevice 得到某个网 卡接口的连接实例 调用实例的 processPacket 开始抓包 将抓获的包交给实例的 receivePacket 方法进行分析处理 以上就是整个抓包过程 当然 在上面的那些方法中 都有一些特定的参数 上面没有给出 这些 参数都是用于配置抓包的 程序采用图形化界面 所以这些参数可以在界面上 根据用户的选择 然后传入相应方法中 最终获得用户所需的信息 采用图形化界面 要解决的一个问题就是界面的刷新 通常是后台程序运 行 产生结果 界面中要及时显现变化 即界面内容因后台结果而变 精品文档 5欢迎下载 在这个前台 界面 和后台都要兼顾的前提下 必须使用线程来解决这个问 题 界面是根据后台而变的 所以可以为界面分配较高优先级 当界面显示内 容不再变化 程序才会去执行较低优先级的后台抓包程序 而当抓包结果产生 时 程序马上又能调用较高优先级的前台程序显示出来 至此 前台和后台都能兼顾运行 这里要说明的一点是 由于采用线程抓包 所以所抓获的包不是连续通过 网卡的包 我们获得的 只是某些时刻的包 3 2 采用技术 JPca p 库函数运用 Swing 组件运用 线程技术运用 托盘技术运用 托盘图标 用于图形化界面 没有抓包方面的知识 文件操作技术运用 分析结果保存于文件和文件打开 3 3 结果界面 开始界面 欢迎界面 菜单选项 File 菜单 Capture 菜单 Tool 菜单 Help 菜单 网卡信息 配置抓包 开始抓包 保存文件 自定义后缀为 sto 打开以前保存的文件 点击打开后 会在界面上显示保存的结果 相关链接 Wireshake 链接 本程序就是参考此程序的 注 要链接此程序 必须安装 wireshake 于本地机器上 目录为安装默认目录 Check network card factory 网卡厂商查询 链接 注 通过此链接 可跳转到国外的一个查询网站 输入前 3 位 16 进制 即前 24 位二进制 网卡地址查询 Help 菜单 注 点击链接到 JPCAP 的 API 要想链接 必须把 API 的 doc 文档放于 E 目录下 托盘 注 当点击窗口最小化时 在电脑右下角显示托盘图标 双击图标恢复界面 QQ 图标左边第一个为本程序的托盘图标 3 4 结果分析 精品文档 6欢迎下载 下面以一个以太帧的结果来分析产生结果 包分析 Captured Length 805 byte Length of this Packet 805 byte Header B dea768 Length of Header 54 byte Data B 1c0cd80 Length of Data 751 byte Ethernet 头部信息 src mac 0 e0 b0 f8 65 8e dst mac d8 5d 4c 1d 52 7a frametype 0 x800 IP 版本 4 Type of service 0 Priprity 0 Packet Length 791 Identification 5730 Don t Frag false More Frag false Frag Offset 0 Time to Live 64 Protocol 6 TCP 6 UDP 17 Source address 192 168 1 100 Destination address 220 170 91 146 Options null TCP Source Port 2434 Destination Port 80 Sequence Number 2037813051 Acknowledge Number 2047245128 URG false ACK true PSH true RST false SYN false FIN false Window Size 46537 Urgent Pointer 0 Option null HTTP GET HTTP 1 1 Accept Accept Language zh cn Accept Encoding gzip deflate User Agent Mozilla 4 0 compatible MSIE 6 0 Windows NT 5 1 SV1 NET CLR 2 0 50727 360SE Host Connection Keep Alive 精品文档 7欢迎下载 Cookie ALLYESSESSION1 4c201e0f6e31e ntes nnid d837938ce6aa32c1e7bd8b6b8ea9b518 0 ntes nuid d837938ce6aa32c1e7bd8b6b8ea9b518 ntes ucc NTES UFC 5101000000000001101000000000000000000000000000000000000000000000 USERTRACK 220 168 117 183 1276908764822367 vjuids 96e8a39f 12205a57bb7 0 c45bac10feb66 vjlast 1245635247 1245635247 30 Province 0730 City 0731 ALLYESID4 00100622094821301258115 ntes test cookies 1245637579343 NTES adText 2 locOfCh south theCity 57679 movnum 1 kksp2009622channeleventcookies 1 这是一个比较完整的以太帧 从上到下为低层包含高层的嵌套结构 每个协议都用分 割线隔开 最初是整个包 以太帧 的信息 然后就是帧头信息 帧头里面按照帧的格式显 示 之后进入 IP 头部格式分析 各个字段也是按照 IP 格式给出 IP 下面是 TCP TCP 下面 是 HTTP 等 结果一目了然 第四章 心得体会 在 获得题目之初 我最初是想做网卡驱动的 因为我觉得假如能实现底层 的驱动的话 能让我更好的掌握相关网络知识 而且对我以后的求职也会有所 帮助 然而当我 在网上找了相关资料一看的时候 所有的编程语言都是底层语 言 比如 C 语言 汇编语言 C 之类 而我的 C 和汇编都仅仅是入门而已 C 更是没有学过 所以做不了网卡驱动了 剩下的网站编写 我自己也写过 一些 觉得那个把相关网络知识都封装了 几乎不会网络知识的人也能完成 最终我选择了 IP 抓包课题 因为这个几乎贯穿了我们所学的知识 开始我也不知道 做了之后我才发现 要实现简单的捕获包 通过相关配 置之后 只要不到百行代码 然后我询问了其他也是做这个课题但是不是用 Java 的同学 他们也说好简单 我知道他们的简单是什么意思 就是得到包而已 我觉得还是不简单的 因为重头戏在分析包的结构中 所以我开始构想 我能不能把常用的包都分析 出来 而不仅仅是题目要求的 IP 分析 经过相关的查询之后 得到结论 可以 要分析包 肯定的了解包的构造 不同层有不同层的构造 不同协议也有 不同协议的构造 我得去查看各个常用协议的构造 教材已不再满足要求 因 为好多都没有整体构造 仅仅是一些字段说明 所以得充分利用网络资源 而 这其中 Request For Comments RFC 是最有力的工具 这里面有各个协议的 标准 整体构造 字段说明等 看了 RFC 之后 我终于知道看原版的好处了 通过查看相关 RFC 之后 我归纳了上面给出的那些协议格式 那些协议也 是我想要在程序里面分析的 还有在一些博客里面 楼主都把自己的经验分享了 在本课程设计中 我 觉得其中最重要的就是有人把环境配置的经验分享了 不然要我去摸索过程 我觉得会是很难的 通过这次实验 我收获还是很多 虽然我也想要有他们做网站 做文件传 输的收获 但是鱼和熊掌不可兼得 他们也没有我的收获啊 嘿嘿 以下是所得 首先 就是巩固了网络知识 对于这些常用协议 我现在真的是有自己的 认识了 其次 掌握了网络抓包的原理 以及基于 Java 的抓包程序的编写 再者 加深 Swing 组件应用 掌握托盘技术 学会使用线程 精品文档 8欢迎下载 最后 也是最重要的一点体验 就是觉得网络真的是一个宝库 只要你知 道你的问题 你都能在其中找到你要的答案 其他的话 就是感谢老师先给我们上了理论知识 最后又提供课题让我们 自己去深刻感受理论知识的运用 参考文献 以下皆来自网络 1 RFC826 Ethernet Address Resolution Protocol ARP 2 RFC792 Internet Control Message Protocol ICMP 3 RFC791 Internet Protocol IP 4 RFC793 Transmission Control Protocol TCP 5 RFC768 User Datagram Protocol UDP 6 RFC2616 Hypertext Transfer Protocol HTTP 1 1 HTTP 以下是教材 7 计算机网络 第四版 清华大学出版社 2004 年 8 月出版 附录 源代码如下 MainFrame 类 package wwc import java awt AWTException import java awt Color import java awt Container import java awt Frame import java awt MenuItem import java awt PopupMenu import java awt SystemTray import java awt TrayIcon import java awt event ActionEvent import java awt event ActionListener import java awt event MouseAdapter import java awt event MouseEvent import java awt event WindowEvent import java awt event WindowListener import java io BufferedReader import java io File import java io FileInputStream import java io FileNotFoundException import java io IOException import java io InputStreamReader import javax swing ImageIcon import javax swing JFileChooser import javax swing JFrame 精品文档 9欢迎下载 import javax swing JLabel import javax swing JMenu import javax swing JMenuBar import javax swing JMenuItem import javax swing JOptionPane import javax swing JPanel import javax swing JScrollPane import javax swing JTextArea import javax swing UIManager import org jvnet substance SubstanceLookAndFeel public class MainFrame extends JFrame implements ActionListener WindowListener Runnable private static final long serialVersionUID 1L private JMenuBar mBar new JMenuBar private JMenu M file new JMenu File private JMenu M capture new JMenu Capture private JMenu M tool new JMenu Tool private JMenu M help new JMenu Help private JMenuItem F open new JMenuItem Open File private JMenuItem F save new JMenuItem Save File private JMenuItem F exit new JMenuItem Exit private JMenuItem C show new JMenuItem Network Card information private JMenuItem C Configure new JMenuItem Configure private JMenuItem C start new JMenuItem Start private JMenuItem C stop new JMenuItem Stop private JMenuItem T wireshake new JMenuItem Wireshake private JMenuItem T factory new JMenuItem Check network card factory private JMenuItem H api new JMenuItem API for JPCAP private JMenuItem H author new JMenuItem About Author public JPanel mainPanel1 public JScrollPane mainPanel2 public Container con public JTextArea area new JTextArea public CatchPacket cPacket Thread thread new Thread cPacket public Configure configure public static boolean isWorking false private SystemTray sTray private TrayIcon tIcon 布局页面 public void init file 菜单 M file add F open 精品文档 10欢迎下载 M file add F save M file add F exit capture 菜单 M capture add C show M capture add C Configure M capture add C start M capture add C stop tool 菜单 M tool add T wireshake M tool add T factory help 菜单 M help add H api M help add H author 组装菜单 mBar add M file mBar add M capture mBar add M tool mBar add M help setJMenuBar mBar setLayout null mainPanel1 welPanel mainPanel2 workPanel mainPanel1 setBounds 50 10 900 700 mainPanel2 setBounds 50 10 900 700 add mainPanel1 add mainPanel2 mainPanel1 setVisible isWorking mainPanel2 setVisible isWorking setTitle PacketCatcher WWC World Wide Catch setSize 1000 800 setResizable false setVisible true F open addActionListener this F save addActionListener this F exit addActionListener this C show addActionListener this C Configure addActionListener this C start addActionListener this C stop addActionListener this T wireshake addActionListener this T factory addActionListener this H api addActionListener this H author addActionListener this this addWindowListener this 精品文档 11欢迎下载 设置托盘 public void setTray sTray SystemTray getSystemTray ImageIcon icon new ImageIcon images tray jpg PopupMenu menu new PopupMenu MenuItem show new MenuItem 显示窗体 MenuItem exit new MenuItem 退出窗体 tIcon new TrayIcon icon getImage World Wide Catch menu tIcon addMouseListener new MouseAdapter public void mouseClicked MouseEvent e if e getClickCount 2 鼠标双击 sTray remove tIcon setVisible true 设置窗口全屏 setExtendedState JFrame MAXIMIZED BOTH 初始化界面 public MainFrame 初始化一个 CacthPacket 对象 以后都是在操作此对象 cPacket new CatchPacket con this getContentPane init setTray 添加 welcome 界面 public JPanel welPanel JPanel jPanel new JPanel JLabel label new JLabel ImageIcon icon new ImageIcon images final jpg label setIcon icon jPanel add label return jPanel 运行时界面 public JScrollPane workPanel area setBackground Color yellow area setText CatchPacket sb toString area setEditable false JScrollPane sPane new JScrollPane area 精品文档 12欢迎下载 sPane setSize 800 600 sPane setVisible isWorking return sPane 菜单栏 listener public void actionPerformed ActionEvent e if e getSource F open if isWorking false isWorking true JFileChooser chooser new JFileChooser int returnType chooser showOpenDialog null if returnType JFileChooser APPROVE OPTION File file chooser getSelectedFile String fileName file getAbsolutePath CatchPacket sb delete 0 CatchPacket sb length cPacket openFile fileName else if e getSource F save JFileChooser chooser new JFileChooser int returnType chooser showSaveDialog null if returnType JFileChooser APPROVE OPTION File file chooser getSelectedFile String fileName file getAbsolutePath cPacket saveFile fileName else if e getSource F exit int show JOptionPane showConfirmDialog null 是否关闭 确认关闭 系统 JOptionPane YES NO OPTION if show JOptionPane YES OPTION System exit 0 else this setDefaultCloseOperation JFrame DO NOTHING ON CLOSE else if e getSource C show isWorking true cPacket devices cPacket getDevices CatchPacket sb delete 0 CatchPacket sb length cPacket desNetworkInterface area setText CatchPacket sb toString else if e getSource C Configure configure new Configure configure init cPacket 精品文档 13欢迎下载 else if e getSource C start if configure null JOptionPane showMessageDialog null Configure first INFORMATION JOptionPane INFORMATION MESSAGE else isWorking true cPacket getCap CatchPacket chooseDevice CatchPacket chooseMode thread new Thread cPacket CatchPacket sb delete 0 CatchPacket sb length thread start else if e getSource C stop if thread isAlive thread stop else if e getSource T wireshake String cmd rundll32 url dll FileProtocolHandler C Program Files Wireshark wireshark exe try Runtime getRuntime exec cmd catch IOException e1 e1 printStackTrace else if e getSource T factory String cmd rundll32 url dll FileProtocolHandler http standards ieee org regauth oui index shtml try Runtime getRuntime exec cmd catch IOException e1 e1 printStackTrace else if e getSource H api String cmd rundll32 url dll FileProtocolHandler E doc javadoc index html try Runtime getRuntime exec cmd catch IOException e1 e1 printStackTrace else if e getSource H author 查看空间 精品文档 14欢迎下载 String cmd rundll32 url dll FileProtocolHandler try Runtime getRuntime exec cmd catch IOException e1 e1 printStackTrace 窗口 listener public void windowActivated WindowEvent arg0 public void windowClosed WindowEvent arg0 public void windowDeactivated WindowEvent arg0 public void windowDeiconified WindowEvent arg0 public void windowOpened WindowEvent arg0 public void windowClosing WindowEvent e int show JOptionPane showConfirmDialog null 是否关闭 确认关闭 系统 JOptionPane YES NO OPTION if show JOptionPane YES OPTION System exit 0 else this setDefaultCloseOperation JFrame DO NOTHING ON CLOSE 最小化 public void windowIconified WindowEvent arg0 if getState Frame ICONIFIED try sTray SystemTray getSystemTray sTray add tIcon catch AWTException e1 e1 printStackTrace setVisible false public static void main String args try UIManager setLookAndFeel new SubstanceLookAndFeel catch Exception e MainFrame mFrame new MainFrame 精品文档 15欢迎下载 Thread mThread new Thread mFrame mThread setPriority Thread MAX PRIORITY mThread start public void run while true try Thread sleep 800 this mainPanel1 setVisible isWorking this mainPanel2 setVisible isWorking area setText CatchPacket sb toString con validate con repaint catch InterruptedException e e printStackTrace Configure 类 package wwc import java awt event ActionEvent import java awt event ActionListener import java awt event ItemEvent import java awt event ItemListener import java awt event KeyEvent import javax swing JButton import javax swing JComboBox import javax swing JFrame import javax swing JLabel import javax swing JTextField import javax swing event PopupMenuEvent import javax swing event PopupMenuListener import jpcap JpcapCaptor import jpcap NetworkInterface public class Configure extends JFrame implements ActionListener private JLabel choose Device new JLabel Choose a Network Interface private JLabel choose Mode new JLabel Choose Work Mode private JLabel set Filter new JLabel Set Filter private JComboBox device Box private JComboBox mode Box private JTextField filter Field new JTextField Input here private JButton go new JButton Go 精品文档 16欢迎下载 public static NetworkInterface devices public String device Names public String mode Names new String 混杂模式 优化模式 public CatchPacket catchPacket public void init CatchPacket cPacket this catchPacket cPacket devices cPacket getDevices device Names new String devices length for int i 0 i devices length i device Names i devices i description i device Box new JComboBox device Names device Box setSelectedIndex device Names length 1 mode Box new JComboBox mode Names mode Box setSelectedIndex 0 布局 setLayout null choose Device setBounds 50 20 250 20 add choose Device device Box setBounds 300 20 250 20 add device Box choose Mode setBounds 50 50 250 20 add choose Mode mode Box setBounds 300 50 250 20 add mode Box set Filter setBounds 50 80 250 20 add set Filter filter Field setBounds 300 80 250 20 add filter Field go setBounds 500 110 50 20 add go setDefaultCloseOperation EXIT ON CLOSE setTitle Configure setSize 600 180 setResizable false setVisible true device Box addItemListener this mode Box addItemListener this filter Field addActionListener this go addActionListener this public void actionPerformed ActionEvent e String device Item String device Box getSelectedItem String mode Item String mode Box getSelectedItem 精品文档 17欢迎下载 Boolean is Mix true for int i 0 i devices length i if device Item endsWith i catchPacket chooseDevice devices i break if mode Item equals 混杂模式 is Mix true else is Mix false catchPacket chooseMode is Mix catchPacket inputFilter filter Field getText this setVisible false if e getSource device Box device Box getSelectedIndex if e getSource filter Field String msg filter Field getText msg msg trim if msg null msg equals msg equals Input here catchPacket inputFilter msg sets 2 true 表示过滤器已设 this setVisible false public static void main String args new Configure CatchPacket 类 pac
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 软体家具咨询策划方案
- 安庆学校活动策划方案模板
- 木材加工设备投资效果综合分析报告
- 大棚后坡维护施工方案
- 鞋厂成本管理咨询方案
- 叫花鸡营销策划方案
- 初中活动方案策划书
- 临水建筑选址规划方案设计
- 音乐培训活动招生方案策划
- 卤味零食达人营销方案
- 供应商审计培训课件
- 国家临床版3.0手术操作编码(ICD-9-CM3)
- 发展汉语初级综合1:第3课课件
- 2021人工智能训练师职业技能标准(职业编码:4-04-05-05)
- 第二十章-颅内和椎管内血管性疾病
- 消防救援队伍作战训练安全行动手册
- 质保金支付申请表
- 苏科版一年级上册《心理健康教育》全一册全部教案(共9课)
- 建筑工程质量安全检查记录表
- 35kV变电站施工组织设计资料
- 保障农民工工资支付协调机制和工资预防机制
评论
0/150
提交评论