局域网聊天软件设计与实现(,C++,MySQL)(任务书,中期检查报告,外文翻译,毕业论文16000字,程序代码,MySQL数据库,答辩PPT)

摘   要

局域网聊天软件是在LINUX系统下运行的一个应用程序,程序用c++语言编写。本程序有如下功能:用户列表自动刷新、通过TCP通信协议进行消息收发、MYsql数据库保存用户名与密码。该设计是一个简单的局域网聊天软件,适用于企业内部和实验室使用,不与互联网进行数据交换,具有高速、安全等优势。

本文着重介绍下列内容:对用户上下线消息通知、聊天消息收发等进行数据解析;TCP网络编程,讲述用TCP    创建Client和Server以及收发数据的实现;最后对本设计的具体实现方法和设计实现流程进行讲解以及程序运行分析。

关键词: LINUX;TCP;Socket;Mysql数据库;C++

The Design And Implementation of The LAN Chat Software

Abstract

The LAN chat tool is An application under LINUX.The application written by C++ language.This program has the following functions: sending broadcast when login and exit,sending and receiving messages by the TCP communication protocol, using MYsql database to save chat messages. it is most often used to chat in enterprise and laboratory, it is working without data exchange from Internet,so it can transmit data high speed and security.

This paper focuses on the following contents: the user online and offline message notification, chat message send and receive data analysis; TCP network programming, here tells the method of using TCP to create client and Server to send and receive data;Finally introduce the design method and implementation process of my graduation design and running the application.

Keywords: LINUX;TCP/IP;Socket;Mysql database;C++

需求分析

本项目基于LINUX系统实现在局域网内的聊天软件,软件分为服务端和客户端,要实现的功能如下。

服务器端:

(1)能够正确的启动服务器。

(2)能够监听指定的端口,来等待用户的连接。

(3)客户端注册时能通过数据库验证用户的注册信息,并把注册结果返回给客户端。

(4)客户端登陆时能通过数据库验证用户的登陆信息,登陆成功后,把此用户的登录消息通知其他好友。

(5)登陆成功时,能够向新连接的用户发送已上线的用户名单。

(6)能够接收客户端的群聊消息请求,并能正确无误地处理请求,并把消息发送到所有已登录的客户端。

(7)能够接受客户端的私聊消息请求,并能正确无误地处理请求,并把消息发送到特定的客户端。

(8)当用户断开与服务器端地连接时,服务器能够把连接正确的断开,并把该用户退出的消息通知其他用户。

(9)能够正确的关闭服务器。

客户端:

(1)能够启动应用程序,并与服务器建立连接。

(2)登陆界面,能够把登录信息正确的发送到服务器。

(3)能够正确的处理服务器反馈的登结果信息。

(4)注册界面,能够把注册信息正确的发送到服务器。

(5)能够正确的处理服务器反馈的注册结果信息。

(6)登录以后,能够自动的更新用户列表。

(7)能够把群聊消息正确的发送到服务器。

(8)能够正确的把群聊消息显示到群聊界面。

(9)能够把私聊消息正确的发送到服务器。

(10)能够正确的把私聊消息显示到特定的聊天窗口。

(11)客户端退出时,能够把该用户的退出消息发送到服务器,并关闭所有聊天窗口。

硬件环境:

CPU:Inter(R) Core(TM) i5 2.67GHz

内存:2.00 GB

硬盘:500 G

软件环境:

操作系统:Ubuntu 12.0.4

应用软件:QT 5.0.2

目录

摘   要    i

Abstract    ii

1  绪论    1

1.1  课题背景    1

1.2  目的和意义    1

1.3  研究现状    1

2  系统分析    3

2.1  系统理论基础    3

2.1.1  C/S架构    3

2.1.2  TCP    3

2.1.3  Socket    4

2.1.4  QT编程框架    6

2.2  可行性研究    10

2.3  需求分析    11

2.4  系统运行环境    11

3  系统设计    12

3.1  系统结构设计    12

3.2  客户端服务器功能设计    12

3.3  客户端设计    13

3.4  服务器端设计    14

3.5  群聊和私聊模块的设计    16

4  程序描述与详细描述    17

4.1  服务器端验证客户端的登录信息    17

4.1.1  功能及实现    17

4.1.2  技术概要    18

4.2  服务器端处理用户消息    20

4.2.1  功能及实现    20

4.2.2  技术概要    21

4.3  客户端读取服务器发送的数据    23

4.3.1  功能及实现    23

4.3.2  技术概要    25

4.4客户端用户列表的更新    25

5  系统实现    27

5.1  登录模块设计    27

5.2  注册模块设计    28

5.3  群聊模块设计    29

5.4  私聊模块设计    32

结论    34

参考文献    35

致谢    36

局域网聊天程序 java MySQL_局域网聊天软件设计与实现(Linux,C++,MySQL)相关推荐

  1. java多客户端聊天程序,java – 多客户端聊天程序,向所有客户端广播聊天?

    我正在尝试制作一个可以容纳多个客户端的非常简单的聊天程序.我有一个多线程服务器,可以连接多个客户端,但服务器只与单个客户端通信(因为它应该,每个客户端都在自己的线程上)我需要帮助让服务器发送来自所有连 ...

  2. 局域网聊天程序 java MySQL_课内资源 - 基于JAVA的局域网聊天软件的设计与实现(仿制QQ)...

    一.系统分析 1.1 问题描述客户端 实现简易版的局域网聊天器 实现富文本内容聊天 智能聊天机器人 群发消息 传送文件等功能 服务器端 实现群发通知 管理聊天线程 1.2 系统功能分析客户端功能 登陆 ...

  3. 用c语言编写一个1V1聊天程序,socket多人聊天程序C语言版(二)

    1V1实现了,1V多也就容易了.不过相对于1V1的程序,我经过大改,采用链表来动态管理.这样效率真的提升不少,至少CPU使用率稳稳的在20以下,不会飙到100了.用C语言写这个还是挺费时间的,因为什么 ...

  4. java游戏界面制作_软件设计之基于Java的连连看小游戏(二)——游戏基础界面的制作及事件的添加...

    上次完成到游戏首页的制作,今天完成了游戏基础界面的制作以及事件的简单添加.由于功能尚未完全实现,因此游戏界面的菜单列表只是简单地添加了一下,其余菜单列表以及倒计时等在后续的制作中逐一完善. 1.首先在 ...

  5. java 工厂模式_软件设计工厂模式使用场景介绍及java举例(附源码)

    工厂模式是软件设计中最常用也最常见的一种模式,这里通过一个例子来说明其功能. 问题背景 用户需求:请提供 1).图形绘制功能,当前可绘制当前可绘制原型.方形.三角形.未来可能需要支持绘制菱形.梯形等形 ...

  6. 一对一直播社交聊天程序: JAVA中的Socket源码概述

    1.网络编程简要概述: 网络编程实质实质就是两个(或多个)设备(例如计算机)之间的数据传输.而要实现两台计算机通过互联网连接进行数据传输,必输要满足计算机网络的5层协议(物理层,数据链路层,网络层,运 ...

  7. TCP多人聊天程序Java实现(群聊,私聊,在线用户,踢出用户)

    本程序在程序 https://blog.csdn.net/joffy/article/details/18079331 的基础是上添加了私聊,踢出用户两个功能. 由客户端和服务器端构成程序,程序借助J ...

  8. java socket编程实现聊天程序_java Socket编程 聊天程序 服务器端和客户端

    [java]代码库package com.gufengxiachen.sthreadchatapp; /** * @author GUXIA */ import java.io.BufferedRea ...

  9. java简单ai聊天_一个hello/hi的简单的网络聊天程序——JAVA

    1.方案介绍 应用程序通过使用用于描述IP地址和端口的"套接字"-Socket向网络发出请求或应答网络请求.Socket和ServerSocket类库位于Java.net包中.前者 ...

  10. 极简易版专家聊天程序--JAVA练手

    呵呵,用JAVA包开发SOCKET连接,是很简单的呢~~~ DailyAdviceServer.java import java.io.*; import java.net.*;public clas ...

最新文章

  1. 实验室电子设备选型-2020-年末
  2. 【做题记录】[NOIP2011 提高组] 观光公交
  3. linux代码段映射,bss,data,text,rodata,堆,栈,常量段与其各段在物理存储中关系
  4. 我的程序都是这样命名的:openeim001
  5. 2-2:套接字(Socket)编程之深入了解套接字
  6. 编程让鼠标一直动_相见恨晚的效率提升工具,低价捡漏可以自定义编程快捷键的鼠标...
  7. 前端----JQuery
  8. Atitit 软件项目系统托盘图标解决方案
  9. SPSS 26 资源及安装教程
  10. GOM登录器技术研究,闪退、掉线的原因分析和解决
  11. 助力单细胞高通量测序国产替代
  12. Java查询Mysql数据库时区问题(相差13/14)个小时
  13. badboy设置中文_badboy中文手册
  14. A Mutex must not be copied after first use. 是什么(nocopy)
  15. C++:实现量化SMM Caplet均匀校准测试实例
  16. 【机器学习实战系列】读书笔记之DecisionTree(ID3算法)(三)
  17. java的几种基本数据类型及其大小
  18. SAP MIGO生产订单入库校验BADI增强MB_MIGO_BADI
  19. 【Linux零基础】3、两种安装软件的方法RPM与Yum
  20. 20:00 @烤仔建工 | 来体验你人生中第一次元宇宙狼人杀鸭~

热门文章

  1. sql 分组 行列转换
  2. JavaScript动态生成表格
  3. 《遥感原理与应用》孙家抦版知识点总结(含简答题)——第六章
  4. 一个前端写的php博客系统--支持markdown哦
  5. 软件项目文档及其必要性
  6. 【UCOSIII操作系统】事件篇
  7. XShell rz、sz命令
  8. java.lang.IllegalStateException: onMeasure() did not set the measured dimension by calling setMeasur
  9. C语言符号常量的使用,C语言常量与符号常量
  10. Vbs脚本编程简明教程之二