当前位置:文档之家› JAVA游戏开发课程设计报告

JAVA游戏开发课程设计报告

《JAVA游戏开发》课程设计报告题目多线程端口扫描器姓名: 申伶俐学号: 081011136专业: 软件技术班级: 软件081计算机科学与技术系2009年6月目录1 设计任务与要求 (4)2 系统功能描述 (4)2.1功能概述 (4)2.2本系统要实现的功能 (4)3 系统总体设计 (5)3.1总体分析 (5)3.2界面设置构思图 (5)3.3界面使用设置构思 (5)3.4后台设计构思 (6)4 系统详细设计 (7)4.1界面设计 (7)4.2界面设计图 (7)4.3后台设计 (8)5 实现与测试 (11)5.1运行要求与环境 (11)5.2运行程序流程图 (12)5.3运行界面 (13)6 设计总结 (15)参考文献 (16)附件 (16)多线程端口扫描器1 设计任务与要求加深对《JA V A游戏开发》课程所学知识的理解,进一步巩固Java语言的语法规则。

分析系统的可行性,让系统有一个明确的方向,使开发更具合理性,并能分析出系统的具体流程,为后面的开发做好铺垫。

明确本次课程设计所要用到的技术点并到网上搜索以及查阅相关的书籍来搜集资料。

通过编写一个基于Java的应用系统综合实例,来掌握Java 语言编程技巧。

并学会编制结构清晰、风格良好的Java语言程序,从而具备解决综合性实际问题的能力,学会使用Java编程工具,如EditPlus,Eclipse等。

2 系统功能描述2.1 功能概述多线程端口扫描器是实现计算机的端口的扫描,只要在在前台设置好所要扫描的IP、起始端口、结束端口以及所要用到的线程数,点击扫描,就可以扫描到所输入IP 地址主机的开放端口,并显示在主窗体中;点击退出,则可以退出该程序。

IP设置应为所在主机的IP地址,起始端口和结束端口应为0~65535之间的一个数,且起始端口应小于结束端口的大小。

线程数为0~200之间的一个数。

点击开始后就会运行,直到扫描完毕显示出开放端口,如果没有开放端口,则只显示扫描完毕。

2.2 本系统要实现的功能①端口扫描功能:扫描开放的端口,并将扫描到的开放端口号送到前台。

②图像显示功能:显示界面图形。

③多线程功能:当客户端要求与服务器端建立连接时,服务器端就将用到多线程功能,为每一个建立起来的连接创建一个线程。

④异常抛出功能:对于明显的错误,能提示出错误的类型并结束程序的运行。

3 系统总体设计3.1 总体分析本程序分为前后台系统,后台系统用于扫描主机开放端口,并把节扫描的数据送至前台窗口显示;前台要显示扫描的结果,所以应为一个窗口,这个窗口应能够设置主机的IP地址,设置端口的开始端口、结束端口和线程数,并且还能够显示扫描的状态。

在中央是显示结果的窗体。

本程序还应能够有控制扫描的状态命令,附加设置最小化和关闭按钮。

3.2 界面设置构思图图1 系统构思图3.3 界面使用设置构思当出现如图所示的界面时,填写好要扫描的IP地址,需要扫描的端口范围和线程数,单击命令提示按钮就可以开始扫描,扫描结果就会显示在中间的扫描结果显示区域,在扫描状态显示区就会显示是否扫描完毕。

流程图如下:图2 系统构思流程图3.4 后台设计构思后台系统使用Scanner和Scan类,创建前台布局和创建扫描端口、事件处理,并且能对简单的错误进行判断,显示错误原因。

调用数据处理包,处理异常情况;调用皮肤包,美化显示窗口。

4 系统详细设计4.1 界面设计本程序界面图形设计要能清楚显示扫描后的结果,并且能很好的体现出界面的整洁大方,但并不失去吸引人眼球的画面,所以在做界面的时候考虑了界面的色彩,并且添加了皮肤,界面上面的字体设置和windows窗口设置一样采用宋体,界面上的按钮不设置过多的按钮,仅设置有必要的按钮即可,界面设置大方。

使用的时候有默认的IP地址、需要扫描的端口和线程数,如果需要扫描其他主机,只需要填写好要扫描的主机的IP地址,需要扫描的端口范围和线程数,单击命令提示按钮就可以开始扫描,扫描结果就会显示在中间的扫描结果显示区域,在扫描状态显示区就会显示是否扫描完毕。

4.2 界面设计图本程序采用小窗口形式,外围大小为170mm*90mm,字体采用宋体五号,结果显示区域框架大小为160mm*45mm,底色为粉红,结果显示字幕为主机地址加开放端口。

添加个性皮肤。

其余地方设置按钮和扫描的主机地址、端口和线程数。

设计的预计页面图形如图:显示粉红底色添加个性皮肤图3 系统界面设计图4.3 后台设计本程序使用了为主要的Scanner类和Scan类。

Scan类的作用是创建线程扫描端口,然后把结果显示到前台。

Scanner类的作用是构造前台布局,调用Scan类添加事件处理,对输入进行错误判断,如果输入不在允许的范围之内则显示相关错误。

在本程序中用到了网络编程的两个类,下面介绍这两个类的常用方法。

InetSocketAddress类构造方法如下:●InetSocketAddress(InetAddress addr, int port):根据IP 地址和端口号创建套接字地址。

●InetSocketAddress(int port):创建套接字地址,其中IP 地址为通配符地址,端口号为指定值。

●InetSocketAddress(String hostname, int port):根据主机名和端口号创建套接字地址。

Socket类常用方法如下:●Socket():通过系统默认类型的SocketImpl 创建未连接套接字●Socket(InetAddress address, int port):创建一个流套接字并将其连接到指定IP 地址的指定端口号。

●void bind(SocketAddress bindpoint):将套接字绑定到本地地址。

●void close():关闭此套接字。

●void connect(SocketAddress endpoint):将此套接字连接到服务器。

●void connect(SocketAddress endpoint, int timeout):将此套接字连接到具有指定超时值的服务器。

●boolean isClosed():返回套接字的关闭状态。

●boolean isConnected():返回套接字的连接状态。

本程序还调用其他的一些类和包,比如软件包java.awt.color 、java.awt.event、io.IOException、Javax.Swing、jvnet.substance.*。

●java.awt.color包的的描述:提供用于颜色空间的类。

它包含了基于国际色彩联盟(ICC) 配置文件格式规范的颜色空间实现。

它还包含了基于ICC 配置文件格式规范的颜色配置文件。

用来使界面更加具有色彩。

Result.setBackground(Color.PINK);//设置窗口为粉红●java.awt.event 的描述:提供处理由AWT 组件所激发的各类事件的接口和类。

事件由事件源所激发,向事件源注册的事件侦听器可接收有关特定事件类型的通知。

此包定义了事件和事件侦听器,以及事件侦听器适配器,它是让事件侦听器的编写过程更为轻松的便捷类。

在本程序中使用:public void actionPerformed(ActionEvent e) {String cmd = e.getActionCommand();if(cmd.equals("Start"))…………}●io.IOException包的描述:用来处理io的错误,不仅仅是文件读写,还包括很多stream的读写,而且throws是用来放在函数定义的函数体前函数名后的,表示这个函数将会在出现异常的书后会抛出io异常,所以在以后的程序中调用这个函数的时候就必须用try和catch来捕获异常,否则编译会报错,这主要涉及到java的安全机制。

本程序中使用如下:try {minPort = Integer.parseInt(PortStart.getText());maxPort = Integer.parseInt(PortEnd.getText());threadNum = Integer.parseInt(ThreadNum.getText());} catch (NumberFormatException e1) {DLGError.setBounds(300, 280, 299, 120);DLGINFO.setText("错误的端口号或线程数!端口号和线程数必须为整数!");DLGINFO.setBounds(10, 20, 280, 20);OK.setBounds(110, 50, 60, 30);DLGError.setVisible(true);return;…………}●Javax.Swing集合描述:由所有Java图形用户界面(GUI)组件所构成,可运行在任一支持Java虚拟机(JVM)的本地平台上。

由于这些组件全都是用Java语言编写的,因此它们可以提供比本地平台GUI组件更多的功能。

(与抽象窗口工具箱对比)。

Java Swing是Java Foundation Classes(JFC)的一部分。

在Swing中,Sun开发了一个经过仔细设计的、灵活而强大的GUI 工具包。

Swing是在AWT组件基础上构建的。

它所提供的功能要比AWT提供的更为广泛。

它也是Java技术的一种标准配置。

Swing模型一个Java GUI通常由顶层容器、中间容器以及多个原子组件组成。

每个原子组件或容器都可能触发相应事件的产生。

容器是一类能够在其中容纳其他组件的特殊组件。

Swing的GUI组件类是按照类属层次以树状结构进行组织的。

在这个树的最顶层,即树的根部,使一个最基本的容器类,被称为顶层容器。

Swing 提供了三个通用的顶层容器类JFrame,JDialog和JApplet。

JFrame提供了基于窗体的应用程序,JDialog提供对话框形式的界面,JApplet提供Java小应用程序的界面形式。

在顶层容器下是中间容器,用于容纳其他的组件。

通常窗格本身在显示界面中是看不到的。

面板类Panel是一种中间容器,它的唯一作用是使组件更容易定位。

顶层容器通过getContentPane()方法获取内部的一个内容窗格。

Swing包的组成:●javax.swing:基本Swing包,包括Swing容器、组件及相关设置的类和接口。

●javax.swing.border:包括与边界设计相关的类和接口。

●javax.swing.colorchooser:与颜色选择相关的类和接口。

●javax.swing.event:包括事件处理相关的类和接口。

相关主题