- Python专选课上机任务之一, 使用wxPython制作GUI, 调用Python socket中的TCP模式进行双向通信,
- 客户端和服务端都有可以使用的图形界面.
- 部分核心代码源于兄弟项目: https://github.com/Mark-ThinkPad/TCP_Robot
- 开发环境:
Python 3.7.4
- 系统环境:
Arch Linux
- Server.py: 服务端核心代码, 已经抽象成类, 可以直接在终端中运行. 自动回复功能默认开启, 如果需要关闭, 则在
Server
类中找到chat()
方法的最后一段, 注释掉复读机模式下的两行代码, 取消注释人工回复模式下两行的被注释代码. - ChatServer.py: 服务端的图形界面, 支持独立运行. 自动回复功能默认开启, 如果需要关闭, 则在
ChatServer.py
中找到RequestSync
线程子类中的最后一段代码, 根据注释提示操作即可. - Client.py: 客户端核心代码, 也抽象成类, 可以在终端中直接运行(请先启动服务端)
- ChatClient.py: 客户端的图形界面, 支持独立运行(请先启动服务端)
- ChatUI.fbp: wxFormBuilder的生成文件
- 消息持续刷新采用多线程来实现, 方法为编写自定义
threading.Thread
子类配合wx.CallAfter()
, 实现消息的持续接收和消息刷新在图形界面上 - 客户端图形界面只用了一个自定义线程子类
- 服务端图形界面使用了两个自定义线程子类, 而且是嵌套调用关系