《2022年局域网聊天系统设计方案与实现项目开发总结报告 .docx》由会员分享,可在线阅读,更多相关《2022年局域网聊天系统设计方案与实现项目开发总结报告 .docx(6页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、局域网谈天系统的设计与实现工程开发总结报告1.1 需求分析本工程的名称为“局域网谈天系统的实现与设计”,为本学期的工程实践课题;本工程将运行在Windows XP 下操作系统中,在 Visual C+ 环境下,由服务器对客户端供应各种数据的记录、储备、认证等功能,并在客户端实现基本的即时谈天功能; 软件的总体要求:实现用户在局域网内可以点对点的聊天,可以群聊,发送表情图片等等功能;编写这份开发总结报告一方面可以让开发者总结开发以来的问题,另一方面可以给领导明白开发过程; Visual C+是一个功能强大的可视化应用程序开发工具,用于 Windows 环境下 32 位的应用程序的开发,是运算机界
2、公认的最优秀的应用开发工具之一;在供应可视化的编程方式的同时, Visual C+也适用于编写直接对系统底层操作的程序,生成代码的质量也优于其它的开发工具;在Visual C+环境下,利用 Microsoft 的基本类库 MFCMicrosoftFoundation Class Library, 可以使用完全的面对对象的方法来进行 Windows 95/98/NT 应用程序的开发,使得 Windows 程序员从大量的复杂劳动中解救出来,体会到真正的程序语言的强大功能和良好的敏捷性; Visual C+编程是一个面对对象的程序设计方法;同传统的结构化程序设计方法相比,它缩短软件的研制时间,提高软
3、件的开发效率,使程序员可以更好地理解和管理庞大而复杂的程序;面对对象的程序设计吸取了结构化程序设计的精华,它利用了人们依据对事物分类和抽象的倾向,引入了类和对象的概念,具有封装性(数据抽象)、继承和多态的特点;与结构化程序设计不同的是,面对对象程序设计是用类抽象代表现实的实体,用类之间的继承关系表示程序设计的抽象过程;函数只是对数据的操作,没有数据的概念,而类是数据和数据操作的集合,由于面对对象的程 序 设 计 方 法 非 常 近 现 实 , 所 以 越 来 越 流 行 ;Visual C+中集成了大量的最新技术,如ActiveX 、COM 等技术,程序开发人员可以紧紧地把握住软件开发技术进展
4、的方向,开发出功能强大的应用程序;1.2 背景a. 待开发的软件系统的名称:局域网谈天系统;b. 本工程的任务提出者、开发者:姚贺翔;c. 该软件的使用范畴:公司内部的局域网之中;1.3 定义局域网谈天系统:局域网终端使用者的网络沟通服务,使用者可以通过安装了局域网谈天系统客户端的终端机进行两人或多人的谈天,内容包括文字,图片等;SOCKE:T 套接字;TCP:传输掌握协议; UDP:数据包协议;2.1 工程设计文档最终制成的产品,包括:a. 可运行的局域网谈天系统应用程序;b. 关于局域网谈天系统方面的有关文档,例如:需求分析报告、软件设计说明书、软件使用说明书、测试分析报告等等一系列文档;
5、c. 程序目前只有一个版本;已经通过用户在使用过程中去发觉存在的BUG;d. 建立的数据库名称为 MyQQ.mdb和 Java 自带的 derby 数据库;e. 主程序是谈天系统,其中仍自带了备忘录和小嬉戏两个模块;代码量大致在 10000 左右;主要功能是否完成性能2.2 主要功能和性能谈天是良好转变字体是良好表情是良好文件传送是良好备忘录是良好小嬉戏是良好谈天记录是良好2.3 基本流程客户端创建Socket发送恳求类型发送消息发送完毕连接消息恳求命令信息完 毕服务器端创建ServerSocke等 待 客 户端恳求判 断 请 求类 型 做 出相应处理接收消息接收消息根 据 服 务器 结 果
6、做出处理结果终止信号停止接收返回结果终止数 据执行操作库3 编码与环境package Chat2;import java.awt.* ;import java.awt.event.ActionEvent ;import java.awt.event.ActionListener;import java.awt.event.KeyAdapter ;import java.awt.event.KeyEvent ;import java.awt.event.WindowAdapter;import java.awt.event.WindowEvent;import java.io.* ;import
7、 .* ;import java.text.SimpleDateFormat ;import java.util.* ;import javax.swing.* ;public class Chat extends JFrame private static final long serialVersionUID = 1;private JScrollPane list_text_gdt = null ;Toolkit kit = Toolkit.getDefaultToolkit;Dimension screenSize = kit.getScreenSize ;private int sc
8、reenWidth = screenSize.width ; / 得到当前用户屏幕的尺寸private int screenHight = screenSize.height ;Image iconImg = kit.getImage./222.gif; / 得到一个图标文件public static Calendar ocal = null ; / 系统时间public static Date current_time = null ;public static SimpleDateFormat sdff = new SimpleDateFormat yyyy-MM-dd HH:mm:ss;
9、public Image img = new Image56;public static int imgnum = 0 ;private JFileChooser chooser ;static JTextArea list_text = null ;static JTextArea send_text = null ;boolean flagEnter = false ;private boolean Bconnect = false ;public String ipAdd = null;/ 读写数据DataInputStream dataReader = null ;DataOutput
10、Stream dataWriter = null ;Socket clientConnectServer = null ;Thread redthred = new Threadnew ReadThread ;JButton send_info_button = null ;JButton send_close_button = null ;JButton file_send_button = null ;JMenuBar chatMenuBar = new JMenuBar ;/ 菜单条JMenu fileMenu = new JMenu 文件 ;JMenuItem fileMenu_ope
11、n = new JMenuItem打开 ;JMenuItem fileMenu_clear = new JMenuItem清空 ;JMenuItem fileMenu_save = new JMenuItem储存 . ;JMenuItem fileMenu_savel = new JMenuItem另存为 .;JMenuItem fileMenu_exit = new JMenuItem退出 ;JMenu helpMenu = new JMenu 帮忙 ;JMenuItem helpMenu_help = new JMenuItem使用说明 . ;JMenuItem helpMenu_me =
12、 new JMenuItem关于我们 . ; / 以上为软件各个组件JTabbedPane font_face_tab = null; / 字体表情选项卡JTabbedPane send_text_tab = null; / 发送文本框选项卡JComboBox font_list = new JComboBox;JComboBox face_list = new JComboBox;public static boolean chatToServer = false ;public ChatString ipAdd chatToServer = true;this.ipAdd = ipAdd
13、;jjInitipAdd;this.setIconImageiconImg ;this.setTitlechat ;this.setVisibletrue ;4. 测试条例容错性测试:容错性测试是检查软件在反常条件下的行为,容错性好的软件能确保系统不发生无法意料的事故;经检查,当用户输入无效操作时,系统总是能检测到很多的操作,对用户进行相应的信息反馈,并合理的做出内部处理,当系统本身发生错误,比如网络初始化失败,绑定套接字失败,数据 失败等,都会进行相对应的正确处理;例如当文件传输时,用户输入的文件不存在,而单机“开头”时,会有如图 6-1 所示的错误提示;易用性测试:易用性测试没有一个量化的
14、指标,主观性较强,一般认为,假如一个系统可以让用户不查阅手册即可正确使用起全部功能,那么这个系统就具有良好的易用性;本谈天工具使用过程中提示信息详解,界面友好,操作简洁,新用户能够很快学会使用所以具有有较好的易用性;文档测试:在本系统的开发过程中,由于是笨科毕业设计,所以具有完备的开题报告, 文件阐述,任务书,以及最终的论文做总结阐述,整个文档所以说文档方面也比较完整;性能与效率测试:关于性能的问题,在语聊时,未对语音输入设备采集到的信息进行编码,缓冲数也较少,所以当用户所处环境狭小时,回音将产生啸叫;改用麦克风和耳机之后,肯定程度上隔断回音的影响,通话质量基本上能满意要求;文件传输的时候,通
15、过对文件长度以及已传输出信息量的相减运算,显示出当前运输状态,需要占用较多的系统运算资源和大事,而且传输速度相对IPMSG 等软件,慢太多;这个问题,我通过对文件流缓冲的字节数进行增大,设置为8KB 后,运算量削减,传输速度明显加快,通过计事器计时,最终得出的传输速率与IPMSG 相比,大致一样,由于对于快带相对较大,至少都是10Mbps 的局域网来说,信息的发送和接受,在局域网内几乎就是瞬时响应,造成速度瓶颈的不是网络传输因素,而是频繁的对磁盘蛇盘进行读写所致,而传输过程中频繁的运算也是造成系统资源消耗过大的一个缘由;通过改进算法后,文件传输效率基本上能满意用户要求;另外,此设计中未先知传输
16、文件的大小,经测试,5GB 以上的文件也能通过文件传输模块进行传输;因此,和其他的类似软件相比较,有更大的应用范畴;5 体会与教训通过这次的工程开发,从中获得了很多的学问,特别是对Java 语言的熟悉更加的深刻了, Java是目前最为流行的程序开发语言;作为一种完全的面向对象的语言,它吸取了其他语言的各种有点,设计简介而美丽,使用起来便利而高效,是一门典型的门槛低而天花板高的语言;既像Basic那样简洁入门,又像 C/C+那样具有强大的实际应用才能;而且与其他纯粹的语言不同, Java 其实是一个完整的技术平台;在开发过程中吸取的教训也很多,就是在对某些方法把握的不是很清晰的情形下,乱用一些方法,导致产生一些严峻的错误;仍有就是每次开发一段时间之后,都会备份一下完整的代码,以防电脑显现故障导致代码丢失,或者是代码修改之后无法复原等等;总体而言,这次的工程开发收成仍是庞大的;