1 Star 2 Fork 1

Mark-ThinkPad/TCP_Robot

加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
贡献代码
同步代码
取消
提示: 由于 Git 不支持空文件夾,创建文件夹后会生成空的 .keep 文件
Loading...
README
WTFPL

基于TCP协议的简易聊天机器人


Content


简介

  • 计算机网络课程设计中的一个题目: 基于TCP协议的简易聊天机器人
  • 开发语言: Python 3.7.3
  • 开发平台: Manjaro Linux 18
  • 初期版本其实就是很容易搜到的现成的轮子: 教程链接, 只能在终端中使用(CLI)
  • 最后的完成版为客户端编写了"简陋"的图形界面(GUI), 使用了 Qt5(PyQT5) 实现
  • 服务端的图形界面暂时无法完整实现, 因为一时无法想出把TCP连接线程中接收到的客户端消息实时刷新的方法, 后面还有两门课设如期而至, 时间紧迫, 只能暂时弃坑, 随缘更新

文件内容

  • server.py: 服务端端核心代码, 已经抽象成类, 可以直接在终端中运行
  • robot.py: 没有完整实现的服务端图形界面, emmm, 看看就好
  • client.py: 客户端核心代码, 也抽象成类, 可以在终端中直接运行
  • user.py: 简陋的客户端图形界面, 支持更换聊天消息框的颜色和字体, 支持夜间模式, 支持一键断开连接和一键重连, 默认回车键快捷发送消息
  • /UI/: 使用 Qt Designer 设计的界面布局文件, 仅用来提供各个部件的定位
  • /background/: 客户端图形界面实现过程中使用的背景图片文件, 发现设置背景图片后实际效果并不好看, 所以没有采用背景图片的方案, 但还是决定把图片保留下来, 图片来源: Bing必应每日壁纸

技术实现

  • 最重要的其实是实现图形客户端的实时刷新消息的功能, Qt5界面中不做处理的直接使用循环可能会导致Qt主线程阻塞, 此时需要借助QThread类使实时刷新消息不阻塞Qt主线程, 同时注意与主线程之间的信号实时传递
  • 其他的直接看代码注释吧, 由于是第一次接触这些东西, 所以添加了不少注释

相关资料

DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE Version 2, December 2004 Copyright (C) 2004 Sam Hocevar <sam@hocevar.net> Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is allowed as long as the name is changed. DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSE TERMS AND CONDITIONS FOR COPYING, DISTRIBUTION AND MODIFICATION 0. You just DO WHAT THE FUCK YOU WANT TO.

简介

计算机网络课程设计, 基于TCP协议的简易聊天机器人, 开发语言Python3, 初期版本只能在终端中运行(CLI), 最终完成版为客户端编写了"简陋"的图形界面, 使用Qt5(即PyQt5)实现 展开 收起
README
WTFPL
取消

发行版 (1)

全部

贡献者

全部

近期动态

不能加载更多了
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
Python
1
https://gitee.com/Mark-ThinkPad/TCP_Robot.git
git@gitee.com:Mark-ThinkPad/TCP_Robot.git
Mark-ThinkPad
TCP_Robot
TCP_Robot
master

搜索帮助