仿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
程序效果:
本程序实现了单人聊天和群聊,懒导致群聊窗口没写
源码地址:https://download.csdn.net/download/siyi__/10498161
仿QQ聊天系统(JAVA+MySQL)相关推荐
- Java仿QQ聊天系统Eclipse+MySql实现
qq聊天项目使用简介: 通过之前的java学习,写了一个仿QQ的聊天程序,主要实现的功能有注册.登录.好友列表.发送文字.图片.文件.表情. 项目环境配置 软件开发工具:eclipse 项目结构:客户 ...
- 复习Java第二个项目仿QQ聊天系统 01(界面部分) Java面试题Redis的过期策略和内存淘汰策略生活【记录一个咸鱼大学生三个月的奋进生活】023
记录一个咸鱼大学生三个月的奋进生活023 复习Java(仿QQ聊天系统01界面部分) 设置背景(ImgPanel)类 登录界面(LoginFrame)类 注册界面(RegisterFrame)类 好友 ...
- 复习Java第二个项目仿QQ聊天系统 03(两种通信类、登录以及注册功能完善) Java面试题并发编程相关知识生活【记录一个咸鱼大学生三个月的奋进生活】025
记录一个咸鱼大学生三个月的奋进生活025 复习Java(仿QQ聊天系统03两种通信类.登录以及注册功能完善) TcpSocket类(与服务器进行通信) Server类(服务器类) TcpMessage ...
- linux课程设计QQ聊天带界面,仿QQ聊天系统课程设计解析.doc
仿QQ聊天系统课程设计解析 目录 绪论1 一.需求分析1 1.1软件功能需求分析2 1.2 安全需求分析2 二.总体设计3 2.1 软件结构图3 2.2 功能描述3 2.2.1注册功能概要4 2.2. ...
- 视频教程-网络聊天室Java基础版(Socket_Swing编程)仿QQ聊天-Java
网络聊天室Java基础版(Socket_Swing编程)仿QQ聊天 IT行业资深从业者,7年资深Java高级开发,Java架构师.曾就职银行.电信等行业多家上市公司.担任项目负责人,软件架构师.有丰富 ...
- 仿qq空间java源码_android 发说说动态源码下载(高仿QQ空间,含图片多选)
[实例简介]仿qq发动态,图片发布效果 [实例截图] [核心代码] package com.king.photo.activity; import android.annotation.Suppres ...
- java 实现 仿QQ聊天系统 简易地实现 网络 在线聊天 代码详解(附源代码)
首先,实现的效果如下图: 这是一个非常经典的例题,几乎在每本程序语言入门书中都会涉及到一部分原理的讲解.我在这里简单地介绍一下代码的实现,让刚学习网络编程的读者更好的理解和实现,二来加深自己的记忆. ...
- java仿qq聊天系统 多人聊天室
目录 项目介绍 项目截图 服务器与客户端 新用户注册 注册新账号成功 进入聊天室 多人在线 选择发送文件 文件接收提醒 项目代码参考 服务器入口程序 服务器请求处理 原理解析 服务器多人网络连接: 如 ...
- [开题报告+论文+源码]基于Android仿QQ聊天系统
课题名称: 基于Android的网络聊天软件的设计与实现 1.本课题所涉及的问题在国内(外)的研究现状综述 随着科技的发展手机作为一种非常重要的通讯工具,其功能越来越强大,相对于电视.互联网等方式.手 ...
最新文章
- 【pwnable】asm之write up
- 中国煤炭行业十四五投资战略与供需形势分析报告2022版
- java数据结构之排序-- 插入排序算法
- C语言makefile文件详解,makefile讲解
- iPhone8已跌至三千元档,迫不及待的入手了一部
- 笔记16(shell编程)
- pythonlauncher可以卸载吗_python的launcher用法知识点总结
- c语言的程序的基本示例
- hcia第五天 结课
- (快速下载)百度 apollo 开源代码
- Windows Mobile 设备中心开启方法(win7/win10)
- 如何写出优雅的React代码Clean Code vs. Dirty Code
- bzz xch出来后fil未来会怎么样?
- 监控实时直播的四分屏的前端展示
- 怎样调整Firefox火狐浏览器开发者控制台字体大小
- Unity3D 解决检测碰撞某类物体的一种方法
- Excel.Application组件使用方法,适合应用于使用EXCEL组件做WEB应用开发。
- 什么是同态加密?为什么它不是主流加密算法?
- GO语言-自定义error
- IP地址、子网掩码、网关、DNS的关系及sicket的常识
热门文章
- AB分区保留面具升级系统(安卓11不丢面具升级系统)
- elementUI表格树动态合并列问题处理(最终版,---新需求)
- python实现数据可视化_使用Matplotib python实现数据可视化
- php敏感字符串过滤_PHP的一个过滤敏感词或脏话的方法
- Matlab中ode45求解时报错:必须返回列向量。
- EBYTE E103-W02 WIFI模块配置总结(TCP+UDP+HTTP+云透传)
- WebRTC多人音视频聊天架构及实战
- OS课设:实现二级文件目录系统
- python人脸识别解锁电脑_给你的电脑做个简单的“人脸识别认证”
- mysql脱密姓名和电话号码