推荐星级:
  • 1
  • 2
  • 3
  • 4
  • 5

基于Python 的聊天软件的设计与实现

更新时间:2019-12-25 10:19:42 大小:2M 上传用户:songhuahua查看TA发布的资源 标签:python 下载积分:1分 评价赚积分 (如何评价?) 打赏 收藏 评论(0) 举报

资料介绍

本系统是一个局域网聊天软件,是以Python语言为基础,结合数据库技术,多线程编程技术,运用TCP模式的Socket编程技巧实现一个服务器与多个客户端互联,服务器存储并转发客户端发来的数据,从而实现一对一的客户端之间的通信。服务器将客户端发来的消息进行广播,客户端接收服务器发送的消息,通过内置标志位判断是否进行接收,从而实现聊天室群聊功能。本论文主要阐述了软件开发过程中运用软件开发瀑布模型所走过的需求分析,概要设计,详细设计,编码以及单元测试,集成测试等软件开发与测试流程。通过严谨的编码规范,全面的版本控制以及细致的缺陷跟踪力求设计出的软件功能完善,界面美观,性能优越。


部分文件列表

文件名 大小
基于Python_的聊天软件的设计与实现.pdf 2M

部分页面预览

(完整内容请下载后查看)
安全模型、算法与编程  
基于 Python 的聊天软件的设计与实现  
◆张萍萍 纪志坚  
(青岛大学自动化与电气工程学院 山东 266071)  
摘要:本系统是一个局域网聊天软件,是以 Python 语言为基础,结合数据库技术,多线程编程技术,运用 TCP 模式的 Socket 编程技  
巧实现一个服务器与多个客户端互联,服务器存储并转发客户端发来的数据,从而实现一对一的客户端之间的通信。服务器将客户端  
发来的消息进行广播,客户端接收服务器发送的消息,通过内置标志位判断是否进行接收,从而实现聊天室群聊功能。本论文主要阐  
述了软件开发过程中运用软件开发瀑布模型所走过的需求分析,概要设计,详细设计,编码以及单元测试,集成测试等软件开发与测  
试流程。通过严谨的编码规范,全面的版本控制以及细致的缺陷跟踪力求设计出的软件功能完善,界面美观,性能优越。  
关键词: Python 语言;MySQL 数据库;多线程编程;TCP 协议;Socket 编程  
(3)系统用例图:通过对系统的需求分析,可以识别出系  
统有两个参与者,一个是用户,另一个是系统管理员(在实际的  
代码实现中,配置好服务器端的 IP 地址及端口号后服务器自动  
响应客户端请求,自动建立连接,关闭连接无需人为干预基  
于对系统的分析分别绘制出如图 1,图 2 所示的用户请求和系统  
处理用户请求用例图[3]。  
0 引言  
当今主流的聊天工具有很多,例如 QQ、MSN、雅虎通,这  
些聊天软件已能满足用户聊天的需求由于这些软件的不开源  
性,对于很多公司企业来说,为了保证其信息的安全性,都不得  
不开发设计出一款自己的聊天软件。因此,从当前情况来说,一  
款安全时的聊天软件不仅能够保证员工之间的交流时也  
能保证企业内部之间信息交流的安全对于一个企业来说是极  
其重要的。  
基于这种情况文设计开发出了该聊天软件最大的特  
点就是能够动态时的完成信息的传递以及能更有效的处理用  
户的请求。此外,也因其功能单一而更易于维护和更新。  
1 系统分析  
由于本系统是由更先进的面向对象编程语言 Python 编写程  
序中大量引用的类库都具有平台无关性使得最终系统具有良  
好的跨平台特性[1]。可以将服务器端部署在 Windows 系统下而将  
客户端安装在 Linux 系统中,反之亦然。  
1.1 可行性分析  
(1)经济可行性:该聊天工具是一个小型的系统,因此就  
开发成本来说,只要有一台电脑,就可以开发出来,因此实际的  
成本我们也可以忽略不计。  
图 1 用户请求服务用例图  
图 2 系统处理用户请求用例  
系统处理用户请求用例图说明:  
(1)Regeist:处理用户注册请求。  
(2)技术可行性:该聊天系统采用 Python 作为编程语言,  
利用 MySql 作为后台数据库。首先,对于网络编程 Python 提供  
了丰富的类库使得我们能够很好的进行网络通信MySQL  
数据库本身具有体积小度快的特点该聊天系统的存储数  
据量不会很大,因此将 MySQL 数据库作为后台数据库是一个不  
错的选择[2]。综上,该系统在技术上来说也是可行的。  
(3)运行可行性:该系统是个比较小的系统,因此对于软  
件和硬件的要求都不是很高,现在的电脑基本上都能满足其要  
求。运行所需软件要求:  
(2)Login:处理用户登录请求。  
(3)addFriend:处理用户添加好友请求。  
(4)removeFriend:处理用户删除好友请求。  
(5)textChat:处理用户文本聊天请求。  
(6)fileTrans:处理用户文件传输请求。  
(7)roomChat:处理用户聊天室聊天请求。  
(8)check user:用户注册时,验证用户名是否已经存在。  
(9)Confirm:用户登录时,验证用户名密码是否匹配。  
(10)isOnLine:标识用户的在线状态。  
2 系统总体设计方案  
操作系统:Windows Win7/Linux 及以上  
PythonꢀPython 2.7 及以上  
运行所需硬件要求:  
CPU :不作要求  
2.1 概要设计  
内存:256M 及以上  
2.1.1 整体框架设计  
1.2 需求分析  
本聊天系统主要采用了 C/S 结构务端和客户端之间通过  
Socket 进行连接通信务端主要任务是接数据库和处理客  
户端的各种请求户端主要是为用户提供各种服务后将服  
务请求发送给服务端[4]。  
(1务器端功能需求够处理用户发送的各种请聊  
天信息、传送文件、添加好友等)并准确的转发到指定用户;能  
够向数据库注册用户信息;能够向数据库写入离线消息;  
(2)客户端功能需求:用户可以登录;用户能够注册聊天  
账号户能够添加或者删除好友户能够发送文本聊天信息;  
用户能够进行文件传输;用户能够进行聊天室群聊;  
2.1.2 模块设计  
根据前期的系统需求分析计出局域网聊天系统的各个功  
能模块[5],如下图所示。  
67‖  
安全模型、算法与编程  
功能。当用户点击某个按钮时,会产生一个相应的事件,客户端  
监听到该事件后动相应的程序去处理该事件将该事件的  
请求发送到服务器,然后客户端等待服务器的响应[7]。这两项功  
能分别由 init.py 和 Server.py 两个模块实现,init 模块包含建立客  
户端连接套接字收用户发送的请求请求发送给服务器端。  
Server 模块是一个独立的模块要先于客户端程序运行,实现的功  
能为建立服务器端连接套接字,绑定 IP 和端口地址,监听客户  
端请求,并做出响应[8]。客户端的流程图如图 8 所示。  
图 3 客户端与服务器端连接框架图  
图 4 客户端之间连接框架  
图 8 客户端程序流程图  
2.2.2 登录设计  
本局域网聊天软件名称为 PyChat 本文所有的截图是本软件  
的 1.0 版本,py 为 Python 的简写,同时 Python 脚本文件后缀名  
为.py,Chat 意为“聊天,闲谈在开发本软件时用到的集成开  
发环境为 PyCharm,PyChat 的名字也与之相关联。  
用户登录界面用于接收用户输入的用户名和密码录界面  
对用户输入的用户名密码进行验同数据库中用户信息表进行  
比对验证成功则弹出联系人列表界面正常登录,验证失败则  
提示用户注册。新用户进行注册时,注册界面复用登录界面,由  
“注册”按钮调用数据库模块的相关代码,用户输入的用户名,  
密码信息插入数据库用户信息表中入成功后弹出提示窗口提  
示用户牢记用户名一 ID录界面如图 9 所示册  
成功提示界面如图 10 所示。  
图 5 各功能模块图  
2.1.3 数据库设计  
通过前期对系统进行需求分析以及对各个功能模块的设计,  
确定数据库存储用两张表实现,分别是用户信息表(userInfo、  
历史信息表(history)表结构设计[6]如图 6、图 7 所示。  
图 6 用户信息表  
图 9 登录窗口  
图 10 注册成功提示界面  
本软件代码部分共分为三个.py 件,分别为 init.py,  
Server.pyoprate_db.py录界面由 init.py 文件中的 Window 类  
实现类初始化聊天窗口建两个 Label 控件分别提示帐号、  
密码个 Text 控件用于接收用户输入的用户名密码个 Button  
控件用来产生鼠标点击事件发数据库操作函数用户需要  
注册新用户时只需将自己想要的用户名码输入到输入框中点  
击注册按钮即可[9]。  
图 7 聊天记录表  
2.2 详细设计  
2.2.1 客户端的设计  
客户端主要是实现用户所需功能,当用户启动一个客户端  
户可以通过图形画界面上的一些功能按钮开启某项对应的  
68‖  

全部评论(0)

暂无评论

上传资源 上传优质资源有赏金

  • 打赏
  • 30日榜单

推荐下载