局域网聊天系统的设计与实现-项目开发总结报告.doc_第1页
局域网聊天系统的设计与实现-项目开发总结报告.doc_第2页
局域网聊天系统的设计与实现-项目开发总结报告.doc_第3页
局域网聊天系统的设计与实现-项目开发总结报告.doc_第4页
局域网聊天系统的设计与实现-项目开发总结报告.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

局域网聊天系统的设计与实现项目开发总结报告1.1需求分析本项目的名称为“局域网聊天系统的实现与设计”,为本学期的项目实践课题。本项目将运行在Windows XP下操作系统中,在Visual C+ 环境下,由服务器对客户端提供各种数据的记录、存储、认证等功能,并在客户端实现基本的即时聊天功能。软件的总体要求:实现用户在局域网内可以点对点的聊天,可以群聊,发送表情图片等等功能。编写这份开发总结报告一方面可以让开发者总结开发以来的问题,另一方面可以给领导了解开发过程。Visual C+是一个功能强大的可视化应用程序开发工具,用于Windows环境下32位的应用程序的开发,是计算机界公认的最优秀的应用开发工具之一。在提供可视化的编程方式的同时,Visual C+也适用于编写直接对系统底层操作的程序,生成代码的质量也优于其它的开发工具。在Visual C+环境下,利用Microsoft的基本类库MFC(Microsoft Foundation Class Library),可以使用完全的面向对象的方法来进行Windows 95/98/NT应用程序的开发,使得Windows程序员从大量的复杂劳动中解救出来,体会到真正的程序语言的强大功能和良好的灵活性。Visual C+编程是一个面向对象的程序设计方法。同传统的结构化程序设计方法相比,它缩短软件的研制时间,提高软件的开发效率,使程序员可以更好地理解和管理庞大而复杂的程序。面向对象的程序设计吸取了结构化程序设计的精华,它利用了人们根据对事物分类和抽象的倾向,引入了类和对象的概念,具有封装性(数据抽象)、继承和多态的特点。与结构化程序设计不同的是,面向对象程序设计是用类抽象代表现实的实体,用类之间的继承关系表示程序设计的抽象过程。函数只是对数据的操作,没有数据的概念,而类是数据和数据操作的集合,由于面向对象的程序设计方法非常近现实,所以越来越流行。Visual C+中集成了大量的最新技术,如ActiveX、COM等技术,程序开发人员可以紧紧地把握住软件开发技术发展的方向,开发出功能强大的应用程序。1.2背景a. 待开发的软件系统的名称:局域网聊天系统。b. 本项目的任务提出者、开发者:姚贺翔。c. 该软件的使用范围:公司内部的局域网之中。1.3定义局域网聊天系统:局域网终端使用者的网络沟通服务,使用者可以通过安装了局域网聊天系统客户端的终端机进行两人或多人的聊天,内容包括文字,图片等。SOCKET:套接字;TCP:传输控制协议;UDP:数据包协议;2.1项目设计文档最终制成的产品,包括:a. 可运行的局域网聊天系统应用程序。b. 关于局域网聊天系统方面的有关文档,例如:需求分析报告、软件设计说明书、软件使用说明书、测试分析报告等等一系列文档。c. 程序目前只有一个版本。已经通过用户在使用过程中去发现存在的BUG。d. 建立的数据库名称为MyQQ.mdb和Java自带的derby数据库。e. 主程序是聊天系统,其中还自带了备忘录和小游戏两个模块。代码量大概在10000左右。2.2主要功能和性能主要功能是否完成性能聊天是良好改变字体是良好表情是良好文件传送是良好备忘录是良好小游戏是良好聊天记录是良好2.3基本流程服务器端创建Socket发送请求类型发送消息发送完毕接收消息根据服务器结果做出处理创建ServerSocke等待客户端请求判断请求类型做出相应处理接收消息停止接收返回结果结束执行操作数据库客户端连接消息请求命令信息完毕信号结果结束信号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 .*;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 screenWidth = 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);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;DataOutputStream dataWriter = null;Socket clientConnectServer = null;Thread redthred = new Thread(new 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_open = 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 = 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 Chat(String ipAdd) chatToServer = true;this.ipAdd = ipAdd;jjInit(ipAdd);this.setIconImage(iconImg);this.setTitle(chat);this.setVisible(true); 4.测试条例容错性测试:容错性测试是检查软件在异常条件下的行为,容错性好的软件能确保系统不发生无法意料的事故。 经检查,当用户输入无效操作时,系统总是能检测到无数的操作,对用户进行相应的信息反馈,并合理的做出内部处理,当系统本身发生错误,比如网络初始化失败,绑定套接字失败,数据 失败等,都会进行相对应的正确处理。 例如当文件传输时,用户输入的文件不存在,而单机“开始”时,会有如图6-1所示的错误提示。 易用性测试:易用性测试没有一个量化的指标,主观性较强,一般认为,如果一个系统可以让用户不查阅手册即可正确使用起所有功能,那么这个系统就具有良好的易用性。本聊天工具使用过程中提示信息详解,界面友好,操作简单,新用户能够很快学会使用所以具有有较好的易用性。 文档测试:在本系统的开发过程中,因为是笨科毕业设计,所以具有完备的开题报告,文件阐述,任务书,以及最终的论文做总结阐述,整个文档所以说文档方面也比较完整。 性能与效率测试:关于性能的问题,在语聊时,未对语音输入设备采集到的信息进行编码,缓冲数也较少,所以当用户所处环境狭小时,回音将产生啸叫。改用麦克风和耳机之后,一定程度上隔断回音的影响,通话质量基本上能满足要求。 文件传输的时候,通过对文件长度以及已传输出信息量的相减运算,显示出当前运输状态,需要占用较多的系统计算资源和事件,而且传输速度相对IPMSG等软件,慢太多。这个问题,我通过对文件流缓冲的字节数进行增大,设置为8KB后,计算量减少,传输速度明显加快,通过计事器计时,最后得出的传输速率与IPMSG相比,大致一样,因为对于快带相对较大,至少都是10Mbps的局域网来说,信息的发送和接受,在局域网内几乎就是瞬间响应,造成速度瓶颈的不是网络传输因素,而是频繁的对磁盘蛇盘进行读写所致,而传输过程中频繁的计算也是造成系统资源消耗过大的一个原因。通过改进算法后,文件传输效率基本上能满足用户要求。另外,此设计中未先知传输文件的大小,经测试,5GB以上的文件也能通过文件传输模块进行传输。因此,和其他的类似软件相比较,有更大的应用范围。5经验与教训通过这次的项目开发,从中获得了许多的知识,尤其是对Java语言的认识更加的深刻了,Java是目前最为流行的程序开发语言。作为一种完全的面向对象的语言,它吸取了其他语

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论