基于python的聊天软件的设计与实现_基于Python的⽹络聊天
室设计
本⽂使⽤的⽹络编程模型是
客户端
/
服务端(C/S)结构,⽹
络聊天功能通过
socket
模块实现,
⽤户在客户端上登录到指定端⼝
的服务端与其他⽤户进⾏⽹络聊
天。服务器启动后,等待客户端
的连接,转发客户端指定的聊天
⽤户或所有的其他⽤户。客户端
启动后在
Python
GUI
界⾯接收
⽤户传递到服务器端的消息。某
⼀⽤户可以与指定⽤户进⾏私聊,
也可以向系统中其他已经登录的
客户发送消息实现⾃由聊天,同
时可以管理好友列表如添加或删
除好友。
端发送的数据请求并处理,之后将回应数据发
送给指定客户端,该客户端读取相应数据,如
果没有数据传递则关闭连接,交互完毕。如图
1
所⽰。
议,
TCP(Transmission Control
Protocol)
TCP
协议在传送数据前必须先建⽴
连接,并在数据传送后要释放连接。
TCP
能够
实现全双⼯通信提供可靠交互的服务,能按序到达⽬的端,且不会出现错误。
3 单元模块设计
3.1 客户端
客户端代码可以实现在登录窗⼝中通过
socket编程聊天室基本流程
IP
127.0.0.1
号为
9999
的指定服务端。登录时通过触发登录按钮调⽤
login_sever
函数,退出登录时
exit_system
数。
使
Python
模块
tkinter
描绘界⾯,其模块中的
Python
GUI
⼝,
使
import tkinter
的命令即可将该模块导⼊程序。
编写程序时,将窗⼝的长宽设置为不可变的情况,这样可以保证内部控件位置的合理性。⽤exit_system
函数实现客户端退出,
login_sever
函数实现登录。在登录函数中调⽤
connect_
sever
函数,创建
socket
对象,连接对应的服
务端,并为该客户端启动⼀个线程。客户端有显⽰对话的功能,并且通过敏感字向聊天室的所有⼈发送消息,实现聊和私聊。
get_info
函数可以实现接受服务器发来的消息,并且能
够将好友昵称插⼊好友列表中。通过好友列表中的
Delete
键将来将好友删除,以此来管理
好友。在本程序中能够⾃动将已发送消息的好友昵称添加⾄好友列表。该功能的实现是调⽤tkinter
模块中
listbox
delete
⽅法
,
实现指定
好友从列表中删除。客户端能够实现将本⽤户的消息发给服务端,并且在⾃⼰的消息框中展⽰。通过
insert_user()
函数将选中的好友名放
⼊发送好友框中,进⾏指定好友通信,实现私聊。客户端的聊和私聊的消息展⽰可以在同⼀窗⼝展⽰。模拟客户端
E

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。