使用UDP协议来做
要求:
1.使用软件开发规划来做,尽量使用面向对象的思想编程。
2. 先执行登录程序,三次登录失败直接退出程序。登录成功和失败记录日志。
3. 登录成功之后,自动启动客户端。服务端手动启动,用来和客户端交互
4. 登录成功之后,能执行相应的操作(查看所有用户,查看我的好友,添加我的好友,删除我的好友,退出)
5. 聊天信息显示当前时间
6. 进阶需求:
1.所有菜单展示隔行换色。
2.每个用户有自己的颜色,(从文件中读取)
3.聊天信息,展示自己的颜色。
流程图如下:
我创建的目录和文件结构如下:
chat
├── bin
│ └── start.py # 开始程序
├── conf
│ └── settings.py # 配置文件
├── core
│ ├── checkfiles.py # 检查配置文件
│ ├── client.py # 客户端
│ ├── login.py # 登录模块
│ ├── main.py # 核心程序
│ └── server.py # 服务器
├── db
│ └── user_info.txt # 用户认证文件
├── lib
│ ├── mylogger.py # 自定义日志模块
│ ├── mypickle.py # 自定义pickle模块
│ ├── mysocket.py # 自定义socket模块
│ └── Prompt.py # 自定义颜色显示模块
└── log
└── test.log # 日志文件
user_info.txt我存的是字典
{'username': 'xiao', 'password': '123', 'color': 'red','friends':[],'ip': ('127.0.0.1', 9090)}
建议不要使用以下格式:
xiao|123|red|...
因为经常有人遇到,切割的时候,忘了去掉空格或者换行符。导致登录失败,纠结几个小时。
为了避免这种问题,使用字典,就可以了。
完整代码我上传到github.com中
地址为:
https://github.com/py3study/chat
登录成功之后,菜单列表展示为隔行换色
默认创建好了4个用户。效果如下: