《基于Java的仿QQ聊天系统》由会员分享,可在线阅读,更多相关《基于Java的仿QQ聊天系统(40页珍藏版)》请在金锄头文库上搜索。
1、 JISHOU UNIVERSITY专业课课程论文题题 目:目:基于 Java 的仿 QQ 聊天系统“MINI Q”的设计与实现作作 者:者:学学 号:号:所属学院:所属学院:信息科学与工程学院专业年级:专业年级:总总 评评 分:分:完成时间:完成时间:吉首大学信息科学与工程学院吉首大学信息科学与工程学院基于 Java 的仿 QQ 聊天系统“MINI Q”的设计与实现摘 要随计算机网络的迅速发展,对人类社会诸多领域产生了巨大的影响。尤其是,随着信息时代的来临,人与人之间愈来愈趋向于通过网络来交流和传递信息。而聊天系统正是当前人们使用最多的中介。在这个平台上,许多认识或不认识的人们彼此间能够随意
2、的相互交流。因此,开发和架构这种平台符合时代发展的需要。本系统在开发中用到了局域网通信机制的原理,通过直接继承 Thread 类来建立多线程。开发中利用了计算机网络编程的基本理论知识 CP/IP 协议、客户端/服务器端模式(Client/Server 模式)、网络编程的设计方法等。在网络编程中对信息的读取、发送,是利用流来实现信息的交换,其中介绍了对实现一个系统的信息流的分析,包含了一些基本的软件工程的方法。关键词:Socket;客户端;服务器端;Thread;链接(connection)目 录第一章引言 .21.1 课题背景、意义及现状.21.2 涉及的相关技术及协议 .21.2.1 JAV
3、A 语言 .21.2.2 C/S 模式介绍 .3第二章系统分析 .42.1 可行性分析 .42.2 需求分析 .42.2.1 功能分析 .42.2.2 性能分析 .62.2.3 用例图 .62.2.4 时序图 .62.2.5 活动图 .7第三章总体设计 .103.1 功能模块图 .103.2 数据库设计 .113.2.1 E-R 图.113.2.2 表结构设计 .133.3 类图.16第四章 详细设计及实现.174.1 界面设计 .174.2 数据输入输出设计 .214.2.1 数据输入 .214.2.2 数据输出 .214.3 代码实现 .214.3.1 服务器端设计 .214.3.2 传递
4、包的设计 .244.3.3 聊天客户端设计 .254.3.4 文件传输设计 .26第五章 系统测试.285.1 注册测试 .285.2 登陆测试 .285.3 私聊测试 .295.4 群聊测试 .305.5 文件传输测试 .31结论.33参考文献.34基于 Java 的仿 QQ 聊天程序“MINI Q”的设计与实现2第一章第一章引言引言1.1 课题背景、意义及现状交流对于人类社会及其每个成员都至关重要。直接交流的方式包括语言、文字等,而远程交流还需借助于一些先进的工具如电话、网络等。本课题研究的是支持内部网络交流的系统。当今主流的即时聊天工具有QQ,MSN Messenger,Yahoo Me
5、ssenger等,国内最热门的当属QQ, QQ是深圳市腾讯计算机系统有限公司开发的一款基于Internet的即时通信(IM)软件。腾讯QQ支持在线聊天、视频电话、点对点断点续传文件、共享文件、网络硬盘、自定义面板、QQ邮箱等多种功能,并可与移动通讯终端等多种通讯方式相连。1999年2月,腾讯正式推出。第一个即时通信软件“腾讯QQ”,QQ在线用户由1999年的2人(2人指马化腾和张志东)到现在已经发展到上亿用户了,在线人数超过一亿,是目前使用最广泛的聊天软件之一。QQ不仅仅是简单的即时通信软件,它与全国多家寻呼台、移动通信公司合作,实现传统的无线寻呼网、GSM移动电话的短消息互联,是国内最为流行
6、功能最强的即时通信(IM)软件,使QQ不仅仅是单纯意义的网络虚拟呼机,而是一种方便、实用、超高效的即时通信工具。QQ可能是现在在中国被使用次数最多的通讯工具。 它可以在2000/XP/2003/Win7/Win8操作系统下运行,是十分灵活的网络寻呼工具。它会自动检查您是否已联网,如果您的电脑已连入Internet,可以搜索网友、显示在线网友,可以根据QQ号、昵称、姓名、email地址等关键词来查找,找到后可加入到通讯录中。当您的通讯录中的网友在线时,QQ中朋友的头像就会显示在线,根据提示就可以发送信息,如果对方登记了寻呼机或开通了GSM手机短消息,即使离线了,您也可及时将信息传递给您的好友。虽
7、然以上这些软件是免费的,并且功能越来越强大。但是它们的唯一的不足就是必须要联网或者下载到它们的服务端,要不然是没法脱离Intenet使用的。为了能在一个没有连接到Intenet的局域网使用聊天工具,那就必须要有服务器端。本系统就是包括服务器端与客户端,可以在局域网聊天的一个工具。1.2 涉及的相关技术及协议1.2.1 JAVA 语言经过认真的讨论分析,综合各种计算机高级语言的特征和适应范围,最终基于 Java 的仿 QQ 聊天程序“MINI Q”的设计与实现3决定选择纯面向对象的 Java 语言来完成课题的设计,下面就技术可行性方面, 对 Java 语言作一简要介绍。Sun 公司的口号就是“网
8、络就是计算机” ,Java 能 使所有东西从桌面计算平稳的转 变为基于网络的计算,它是专门为此而建立的, 并显然是为了完成这个任务而来的。使用 Java 语言,可以相对轻松的一天编 写一个有条理的网络程序。今天,Java 的网络 功能正在飞跃发展,不断有新的 特性增加到这个有价值的基础上,JavaSoft 实验室正 在不断努力使 Java 更加 完善。就 Java 语言的主要特点,本人归纳如下:Java 程序设计的开发过程与运 行环境 Java 是解释型的高级编程语言,所以 Java 程序的开发通常需要经过编 写源程序、 编译生成字节码和运行三个过程。 这里要提到,Java 应用程序的 开发周
9、期包括编译、下载、解释和执行几个部分。Java 编译程序将 Java 源程序 翻译为 JVM 可执行代码字节码。这一编译过程同 C/C+的编译有些不同。 当 C 编译器编译生成一个对象的代码时,该代码是为在某一特定硬件平台运行 而产生的。 因此,在编译过程中,编译程序通过查表将所有对符号的引用转换为特定 的内存偏移量,以保证程序运行。Java 编译器却不将对变量和方法的引用编译 为数值引用,也不确定程序执行过程中的内存布局,而是将这些符号引用信息 保留在字节码中,由解释 器在运行过程中创立内存布局,然后再通过查表来确 定一个方法所在的地址。这样就有效的保证了 Java 的可移植性和安全性。1.
10、2.2 C/S 模式介绍20 世纪 90 年代出现并迅速占据主导地位的一种计算模式为客户机/服务器 模式,简称为 C/S 模式,它实际上就是把主机终端模式中原来全部集中在主 机部分的任务一分为二,保留在主机上的部分负责集中处理和汇总运算,成为 服务器;而下放到终端的部分负责为用户提供友好的交互界面,称为客户机。 相对于以前的模式,C/S 模式最大的改进是不再把所有软件都装进一台计算机, 而是把应用系统分成两个不同的角色和两个不同的地位:一般在运算能力较强 的计算机上安装服务器端程序,而在一般的 PC 上安装客户机程序。正是由于 个人 PC 机的出现使客户机/服务器模式成为可能,因为 PC 机具有一定的运 算能力,用它代替了上面第一种模式的哑终端后,就可以把主机端的一部分工 作放在客户机端完成,从而减轻了主机的负担,也增加了系统对用户的响应速 度和响应