基于Python的网络聊天室设计(共5页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于Python的网络聊天室设计(共5页).doc》由会员分享,可在线阅读,更多相关《基于Python的网络聊天室设计(共5页).doc(5页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上基于Python的网络聊天室设计作者:邓亚君 杨刚 翁文斌 邱泸谊来源:电子技术与软件工程2019年第05期 摘要; 本文使用的网络编程模型是客户端/服务端(C/S)结构,网络聊天功能通过socket模块实现,用户在客户端上登录到指定端口的服务端与其他用户进行网络聊天。服务器启动后,等待客户端的连接,转发客户端指定的聊天用户或所有的其他用户。客户端启动后在Python的GUI界面接收用户传递到服务器端的消息。某一用户可以与指定用户进行私聊,也可以向系统中其他已经登录的客户发送消息实现自由聊天,同时可以管理好友列表如添加或删除好友。 【关键词】网络通信socket多线程
2、GUI界面 1 前言 在互联网相当流行的时代,人们对网络的依赖与日俱增,网络交流更是成为了人们生活的一部分。借助网络聊天工具,人们足不出户就可实现闲聊甚至工作交流,使人们的日常生活与工作需求更加便利。网络聊天室主要包括文字聊天室和视频聊天室这两种。本次设计的文字聊天室使用的是Python语言,它具有面向对象、与平台无关、安全、多线程等特点。 2 总体方案设计 2.1 设计原理 Socket对象在网络编程中承担着重要任务,能够用套接字技术编写一个网络聊天室,每个用户需要服务器启动一个线程进行相应工作。在该线程中借助套接字实现客户间信息交流,当服务器接收到客户端发送的聊天信息时,服务器可以在相应的
3、线程的输入流中写入相关信息,然后特定的客户套接字的输入流便能读取到相关信息。 2.2 基本设计概念和处理流程 本系统运行用Python开发,采用C/S结构,系统分为客户端和服务端两大部分,使用socket库建立套接字实现客户端和服务端的通信。 服务器端先将Socket初始化,然后绑定指定端口,实现端口监听,调用accept方法实现TCP阻塞,等待客户端连接。如果这时有一个Socket对象被客户端初始化,并向服务器请求连接。如果连接成功,数据便可以在客户端与服务端之间进行传递。服务端接收客户端发送的数据请求并处理,之后将回应数据发送给指定客户端,该客户端读取相应数据,如果没有数据传递则关闭连接,
4、交互完毕。如图1所示。 这个聊天室采用的是面向连接的传输控制协议,即TCP(Transmission Control Protocol)。TCP协议在传送数据前必须先建立连接,并在数据传送后要释放连接。TCP能够实现全双工通信提供可靠交互的服务,能按序到达目的端,且不会出现错误。 3 单元模块设计 3.1 客户端 客户端代码可以实现在登录窗口中通过套接字连接到本机IP地址127.0.0.1,端口号为9999的指定服务端。登录时通过触发登录按钮调用login_sever函数,退出登录时调用exit_system函数。使用Python的内置模块tkinter描绘界面,其模块中的Tk接口是Pytho
5、n的标准GUI工具包的接口,使用import tkinter的命令即可将该模块导入程序。编写程序时,将窗口的长宽设置为不可变的情况,这样可以保证内部控件位置的合理性。用exit_system函数实现客户端退出,login_sever函数实现登录。在登录函数中调用connect_sever函数,创建socket对象,连接对应的服务端,并为该客户端启动一个线程。客户端有显示对话的功能,并且通过敏感字向聊天室的所有人发送消息,实现群聊和私聊。get_info函数可以实现接受服务器发来的消息,并且能够将好友昵称插入好友列表中。通过好友列表中的Delete键将来将好友删除,以此来管理好友。在本程序中能够
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 Python 网络 聊天室 设计
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内