基于Python的网络聊天室设计
作者:邓亚君 杨刚 翁文斌 邱泸谊
来源:《电子技术与软件工程》2019年第05期
摘要;;; 本文使用的网络编程模型是客户端/服务端(C/S)结构,网络聊天功能通过socket模块实现,用户在客户端上登录到指定端口的服务端与其他用户进行网络聊天。服务器启动后,等待客户端的连接,转发客户端指定的聊天用户或所有的其他用户。客户端启动后在Python的GUI界面接收用户传递到服务器端的消息。某一用户可以与指定用户进行私聊,也可以向系统中其他已经登录的客户发送消息实现自由聊天,同时可以管理好友列表如添加或删除好友。
【关键词】网络通信socket多线程GUI界面
1 前言
在互联网相当流行的时代,人们对网络的依赖与日俱增,网络交流更是成为了人们生活的一部分。借助网络聊天工具,人们足不出户就可实现闲聊甚至工作交流,使人们的日常生活与工作需求更加便利。网络聊天室主要包括文字聊天室和视频聊天室这两种。本次设计的文字聊天室使用的是Python语言,它具有面向对象、与平台无关、安全、多线程等特点。
2 总体方案设计
2.1 设计原理
Socket对象在网络编程中承担着重要任务,能够用套接字技术编写一个网络聊天室,每个用户需要服务器启动一个线程进行相应工作。在该线程中借助套接字实现客户间信息交流,当服务器接收到客户端发送的聊天信息时,服务器可以在相应的线程的输入流中写入相关信息,然后特定的客户套接字的输入流便能读取到相关信息。
2.2 基本设计概念和处理流程
本系统运行用Python开发,采用C/S结构,系统分为客户端和服务端两大部分,使用socket库建立套接字实现客户端和服务端的通信。
服务器端先将Socket初始化,然后绑定指定端口,实现端口监听,调用accept方法实现TCP阻塞,等待客户端连接。如果这时有一个Socket对象被客户端初始化,并向服务器请求连接。如果连接成功,数据便可以在客户端与服务端之间进行传递。服务端接收客户端发送的数据请求并处理,之后将回应数据发送给指定客户端,该客户端读取相应数据,如果没有数据传递则关闭连接,交互完毕。如图1所示。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论