《Java聊天程序的设计与实现》
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
本科生毕业论文(设计)系(院)计算机科学学院专业计算机科学与技术
论文题目Java聊天程序的设计与实现
学生姓名车永华
指导教师苏炳均(副教授)
(姓名及职称)
班级08级ACCP2班
学号08339311
完成日期:二0一一年十一月
Java聊天程序的设计与实现
车永华
计算机科学学院计算机科学与技术08339311
[摘要]:随着信息时代的来临,人们之间的交流也越来越趋向于网络。因此各种聊天工具的使用也是非常频繁,如MSN、QQ之类的聊天工具也被广泛使用。本文在研究局域网通信机制的原理和计算机网络编程基本原理的基础上,使用Java作为开发工具,开发出了一款在局域网中进行通信交流的软件。
[关键字]:Java 服务器端客户端数据传输
引言
当今主流的聊天工具有QQ,MSN,网易泡泡等,国内最热门的聊天工具当属腾讯QQ,是由深圳市腾讯计算机系统公司开发的,基于Internet的即时寻呼软件。你可以通过QQ和你的亲朋好友进行交流,即时收发消息,文件传输,语音视频,发送邮件等功能,QQ不仅仅在电脑在应用,还能通过移动电话登录手机腾讯网址或者下载手机可用的手机客户端进行QQ的登录使用。QQ支持显示好友的在线信息,即时传送信息、即时交谈、即时发送文件和网址。QQ可以在Win95/98/NT/2000/XP/Win7操作系统下运行,是十分灵活的网络通信工具。
虽然QQ软件是免费的,而且功能也是越来越强大。但是唯一的不足的地方就是都需要在电脑联网的情况下才能使用,脱离了Internet根本就是一个只能看不能用的软件,为了能在脱离了Internet的情况下使用的局域网聊天工具,那就必须要有服务器端,而本系统就是包括服务器端和客户端,可以在局域网聊天的一个软件。
1 开发工具概述
1.1什么是Java
Java是一种可以跨平台应用的面向对象的程序设计语言,他是由Sun公司在
1995年推出的程序设计语音。Java具有很高的通用性,安全性,跨平台等特点。Java 与一般的编译执行计算机语音和解释执行计算机语音不同。他它首先是将源代码编译成二进制的字节码,然后在各种不同平台的虚拟机上来解释执行字节码,从而实现了“一次编译、到处执行”的跨平台的特性,这也是Java语言最大的特点。
Sun公司在推出Java后就将它作为一种开放式的技术,从而吸引了很多编程开发者。而Sun公司的口号之一就是“Java语言是靠群体的力量而非公司的力量”,并且获得了广大软件开发商的认可。
1.2Java语言的主要特性
Java语言的主要特性有:1)Java语言是简单的。Java语言的语法和C语言,C++语言很相近,从而使得大多数的程序员很容易学习。2)Java语言是一个面向对象的。比C++更纯粹的面向对象程序设计语言。3)Java语言是分布式的。Java的网络能力强大且易于使用。4)Java语言是健壮的。Java的强类型机制,异常处理,废料的自动收集等是Java程序健壮性的重要保证。5)Java语言是安全的。Java通常应用在网络环境中,因此Java提供了一个安全机制来防止恶意代码的攻击。6)Java语言是体系结构中立的。Java程序在Java平台上被编译为体系结构中立的字节码格式, 然后可以在实现这个Java平台的任何系统中运行。7)Java语言是可移植的。这种可移植行又来源于体系结构的中立性。8)Java语言是解释型的。Java程序在Java平台上被编辑为字节码格式,然后才可以在这个Java平台的任何系统中运行。9)Java是高性能的。与那些解释型的高级脚本语言相比,Java的确是高性能的。10)Java语言是多线程的。在Java语言中,线程是特殊的对象,它必须由Thread类或其子类来创建。通常有两种方法创建:第一,从Thread类派生出子类并重写run方法,使用该子类创建的对象即为线程。第二,实现Runnable接口。11)Java语言是动态的。Java语言的设计目标之一是适应与动态变化的环境。
1.3 Java中的布局
边框布局BorderLayout、流布局FlowLayout、网格布局GridLayout、分组布局GroupLayout、Box类布局。
2.总体设计
2.1功能模块图
该系统主要可以分为由2个比较主要的部分组成:1)文件传输系统;2)QQ聊天系统。
文件传输系统的功能主要是接收你的QQ好友给你传送来的各种文件,然后保存在自己电脑中。
聊天系统的功能:1)新用户的注册;2)用户登录;3)修改密码;4)找回密码;
5)查找添加好友;6)删除好友;7)好友分组;8)发送聊天内容;9)发送聊天表情;10)聊天字体的切换;11)屏幕震动。
图1 系统功能模块图
2.2数据库设计
2.2.1E-R图
用户表(UserInfo):
属性:用户编号(uid),用户名(uname),密码(upass),登录ip和端口号(ipport),状态(status),密保问题(question),密保答案(answer)。
关系:一个用户可以有多个好友分组。
一个用户可以有多条消息。
好友分组表(Group)
属性:组编号(gid),用户编号(guid),组名(gname),好友类型(gtype)。
关系:一条记录只对应一个用户,但是可以拥有多个组员。
好友表(Friends)
属性:好友编号(fid),好友分组编号(fgid),用户好友编号(fuid),
图 2 E-R图
2.2.2表结构设计
表1 用户表(UserInfo)
表2 好友分组表(Group)
表3 好友表(Friends)
表4 消息表(Messages)
以上各表的创建代码如下:
1)创建用户表
CREATE TABLE UserInfo
(
uid INT IDENTITY(1000,1) PRIMARY KEY, --用户编号,自动增长 uname V ARCHAR(50) NOT NULL, --用户名
upass V ARCHAR(50) NOT NULL, --密码
ipport V ARCHAR(50), --登录ip和端口号