# simuqq **Repository Path**: ChangingSelf/simuqq ## Basic Information - **Project Name**: simuqq - **Description**: 基于LAN的即时通讯软件 - **Primary Language**: Python - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2021-04-27 - **Last Updated**: 2021-04-27 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # simuqq 仿qq即时通信软件,使用python编写的计算机网络课设 详细介绍请见: - [博客文章](http://yxchangingself.xyz/posts/IMS_base_on_LAN/#more) - [bilibili视频](https://www.bilibili.com/video/av83477871/) ## 功能需求 - 用账号密码登录 - 与当前在线的人聊天 ### 账号密码登录 客户端利用登录对话框获取账号密码,与数据文件中已注册的账号密码对比 - 如果不匹配,登录失败 - 如果匹配,登录成功,打开主界面 ### 显示当前在线客户端的列表 主页面显示当前在线的客户端,可以选择客户端进行聊天 ## 一些问题 ### 服务端和客户端通信方式 双方发送的都是json字符串,解析出来是一个字典,不是所有的字段都被设置: ```python { 'type':当前消息类型(必选), 'userName':用户名, 'password':密码, 'errStr':错误字符串, 'infoStr':信息字符串, 'data':传递的数据, 'message':聊天消息 } ``` ### 消息类型 - 登录`login`:必须设置`userName`和`password` - 数据刷新`data`:必须设置`data`,且为字典 - 聊天消息`msg`: 必须设置`message`和`userName` - 提示`info`: 必须设置`infoStr` - 错误`err`:必须设置`errStr` ### 登录流程 - 客户端与服务端连接 - 客户端向服务端发送账号与密码 - 服务端检查完账号信息无误之后向客户端发送确认信息与当前在线账户列表,登录成功 ### 用户界面与操作分离 界面单独编写成类,在创建界面类时传入客户端的回调函数,用于按钮的绑定