仿QQ聊天系统(JAVA+MySQL)

摘  要

仿QQ聊天系统是基于MySQL数据库开发工具进行设计,理论研究与实践相结合,利用计算机技术、数据库技术,java技术等对腾讯QQ聊天系统的开发设计进行研究
以JAVA技术为核心,利用计算机局域网通信机制原理(例如TCP/IP协议、客户端/服务器端模式(C/S模式)、网络编程设计方法等)完成了一款适合局域网的仿QQ聊天系统。该系统主要由一个聊天服务器端程序和一个聊天客户端程序两块组成。前者通过Socket套接字建立服务器,服务器能读取、转发客户端发来的信息,并能刷新用户列表;后者通过与服务器建立连接来进行客户端与客户端的信息交流。经测试,系统工作性能稳定,基本能达到聊天功能,并实现了部分附加功能
QQ聊天系统不仅是对不但成为人们的沟通工具,还成为了人们利用其进行电子商务、工作、学习等交流的平台。

1. 需求分析
1.1需求背景 
即时通信软件为我们提供了诸多的方便,使我们逐步享受信息时代的便捷。大家最熟悉的即时通信软件就是QQ了,因为它几乎已经融入了我们每个人的日常生活。没有了QQ,没有了手机,我们或许真的“活不了了”。由此可见,生活在信息时代的人们对即时通信、聊天软件有巨大的需求,这样的软件也将为我们节省大量的时间和金钱,或许还能成为我们发家致富的工具,比如:产品的推介、售后服务及技术交流等。
 然而,既然已经有了QQ如此强大的即时通信软件,我们再去做这样的软件还有什么竞争力吗?QQ已经深入人心,要想再去做可能没有任何竞争力。此时,我们可以换一个角度,调整用户对象。如今,企业内部信息在这个信息时代就是金钱,尤其是一些大企业的内部信息,如果这些信息泄露,可能会造成巨大的经济损失,甚至将导致企业破产。但是,为了便捷企业员工之间的交流,做这样的一个企业内部即时通信、聊天软件还是很有市场的。我们的目标就是做的像QQ,但面向企业内部使用。
 企业内部为了方便员工之间便捷的交流,需要开发一款适合企业内部员工进行即时通信的软件,这样的软件既满足了企业内部员工之间便捷的交流,同时,也防止企业内部信息的外流,开发这样一块面向企业内部的即时通信软件,对于企业来说获益良多。
  在开发这款软件时,为了使习惯了使用QQ的用户,更加方便的使用本软件,我们将很大程度上,模仿QQ的用户界面设计,以适应用户的使用习惯,方便用户使用。
1.2功能需求 
1)客户端:提供登录、主窗体及聊天等界面及对应的业务逻辑,向服务器发送相应的服务请求,并接受相应的处理结果。客户端是轻量级的软件,只负责链接远程服务器,并发出相应的服务请求,并不进行核心业务逻辑的处理。具体的处理交给服务器,而客户端只接收服务器处理的结果并显示给用户。
2)服务器:监控登录信息及在线用户信息,接收客户端的服务请求,并做相应的处理,然后将处理结果发送给客户端。服务器负责处理核心的业务逻辑,并负责连接数据库,保存和读取数据。因此,服务器端设计的好坏也直接影响即时通信软件的质量。
1.3开发环境
运行环境:eclipse集成开发环境,jdk 1.8版本。
使用语言:Java语言。
使用数据库:MySQL数据库。
使用服务器:tomcat7.0。
2. 总体设计
 2.1功能模块设计 

1)客户端


 
图2.1客户端功能模块图


2)服务器端
 
图2.2服务器端功能模块图
2.2 数据库设计
1)数据字典
用户信息表(users)
 
群关系表(user_group)
字段名 数据类型 主键 外键 自增 说明
No Int(2) 1 关系编号
G_no Int(5) 群号
Qq Int(5) QQ号
群信息表(groupinfo)
字段名 数据类型 主键 外键 自增 说明
G_no Int(2) 1 群号
G_name Varchar(10) 群名称
G_date date 创建日期


2)E-R图
 
图2.3数据库E-R图
2.3设计模式 
1)中介者模式:
所有的用户都通过服务器进行通信,服务器其中介的作用。
2)Dao模式
把底层的数据访问逻辑和高层的商务逻辑分开. 
2.4网络设计
 
图2.4基于网络的三层C/S模式
1) JDBC(Java DataBase Connectivity): 是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。

2) 网络协议:TCP/IP&UDP

程序效果:

仿QQ聊天系统(JAVA+MySQL)_第1张图片

仿QQ聊天系统(JAVA+MySQL)_第2张图片

仿QQ聊天系统(JAVA+MySQL)_第3张图片

仿QQ聊天系统(JAVA+MySQL)_第4张图片

本程序实现了单人聊天和群聊,懒导致群聊窗口没写

源码地址:https://download.csdn.net/download/siyi__/10498161

你可能感兴趣的:(java,se)