Thanks to visit codestin.com
Credit goes to Github.com

Skip to content

pengcunfu/simple-chat-python

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 

Repository files navigation

简易聊天系统 (Simple Chat System)

一个基于 Python Socket 和 PySide6 的简单聊天程序,支持文字和图片发送、好友管理等功能。

功能特性

  • ✅ 用户注册和登录
  • ✅ 实时文字消息发送
  • ✅ 图片文件传输
  • ✅ 好友管理(添加、删除、搜索)
  • ✅ 在线用户状态显示
  • ✅ 图形化用户界面

项目结构

simple-chat/
├── chat-client/          # 客户端目录
│   ├── app/              # 客户端应用模块
│   │   ├── __init__.py
│   │   ├── proxy_utils.py      # 代理工具模块
│   │   ├── network.py           # 网络通信模块
│   │   ├── login_dialog.py     # 登录对话框模块
│   │   ├── chat_window.py      # 主聊天窗口模块
│   │   └── application.py      # 应用程序主模块
│   ├── client.py         # 客户端启动程序
│   └── main_backup.py    # 原始客户端程序(备份)
├── chat-server/          # 服务端目录
│   ├── app/              # 服务端应用模块
│   │   ├── __init__.py
│   │   ├── proxy_utils.py      # 代理工具模块
│   │   ├── user_manager.py     # 用户管理模块
│   │   ├── client_manager.py   # 客户端管理模块
│   │   ├── request_handler.py  # 请求处理模块
│   │   ├── chat_server.py      # 聊天服务器核心模块
│   │   └── ui.py               # 用户界面模块
│   ├── main.py           # 服务端启动程序(带UI)
│   └── server.py         # 服务端启动程序(无UI)
├── .vscode/              # VSCode配置
│   └── tasks.json        # 任务配置
├── requirements.txt      # 依赖包列表
└── README.md            # 说明文档

安装步骤

1. 安装 Python 依赖

pip install -r requirements.txt

或手动安装:

pip install PySide6
pip install Pillow

2. 启动服务端

有两种方式启动服务端:

方式一:使用用户界面(推荐)

cd chat-server
python main.py

这将启动一个交互式用户界面,可以:

  • 启动/停止服务器
  • 查看服务器状态
  • 查看在线用户
  • 查看统计信息

方式二:直接启动服务端(无界面)

cd chat-server
python server.py

服务端将在 localhost:8899 启动。

3. 启动客户端

打开新的终端窗口:

cd chat-client
python client.py

使用说明

首次使用

  1. 运行客户端程序后,会弹出登录对话框
  2. 点击"Register"按钮注册新用户
  3. 输入用户名和密码进行注册
  4. 注册成功后,使用相同的用户名和密码登录

聊天功能

  1. 添加好友:在左侧面板点击"Add Friend"按钮,输入要添加的用户名
  2. 开始聊天:双击好友列表中的用户名打开聊天窗口
  3. 发送消息:在底部输入框输入文字,按回车或点击"Send"按钮发送
  4. 发送图片:点击"Send Image"按钮选择图片文件发送

好友管理

  • 添加好友:点击"Add Friend"按钮
  • 搜索好友:点击"Search"按钮搜索用户是否存在
  • 删除好友:选中好友列表中的用户,点击"Delete"按钮

技术实现

服务端 (server.py)

  • 使用 Socket 监听客户端连接
  • 多线程处理并发客户端请求
  • 使用 JSON 文件存储用户数据
  • 支持:
    • 用户注册/登录认证
    • 消息转发
    • 图片文件传输
    • 好友列表管理
    • 在线状态管理

客户端 (client.py)

  • 使用 PySide6 构建图形界面
  • 独立的网络线程处理与服务器的通信
  • 支持:
    • 登录/注册界面
    • 好友列表显示
    • 实时聊天窗口
    • 图片预览
    • 在线状态显示

注意事项

  1. 防火墙设置:确保防火墙允许 8899 端口的通信
  2. 网络连接:客户端和服务端需要在同一网络环境中
  3. 文件大小:图片文件不宜过大,建议小于 10MB
  4. 数据存储:用户数据存储在服务端的 users.json 文件中

常见问题

Q: 无法连接到服务器

A: 检查服务器是否已启动,防火墙是否阻止了连接

Q: 图片发送失败

A: 检查图片文件是否存在,文件路径是否正确

Q: 用户注册失败

A: 检查用户名是否已被使用,确保输入有效的用户名和密码

扩展功能建议

  • 添加消息加密功能
  • 支持群聊功能
  • 添加语音消息
  • 支持文件传输(不仅限于图片)
  • 添加聊天记录保存功能
  • 支持用户头像显示
  • 添加表情包功能

许可证

MIT License

About

简易聊天

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages