socket作业——聊天系统

发布时间:2018-05-06 11:00:33编辑:admin阅读(5835)

    使用UDP协议来做

    要求:

    1.使用软件开发规划来做,尽量使用面向对象的思想编程。

    2. 先执行登录程序,三次登录失败直接退出程序。登录成功和失败记录日志。

    3. 登录成功之后,自动启动客户端。服务端手动启动,用来和客户端交互

    4. 登录成功之后,能执行相应的操作(查看所有用户,查看我的好友,添加我的好友,删除我的好友,退出)

    5. 聊天信息显示当前时间

    6. 进阶需求:

        1.所有菜单展示隔行换色。

        2.每个用户有自己的颜色,(从文件中读取)

        3.聊天信息,展示自己的颜色。


    流程图如下:

    blob.png


    我创建的目录和文件结构如下:

    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个用户。效果如下:

    效果图.gif


关键字