• Python实现文字聊天室


    你是否想过用所学的Python开发一个图形界面的聊天室程序啊?

    像这样的:

    image

    如果你想开发这样一个有点怀旧风格的聊天程序,那么可以接着看;

    要开发这个聊天程序,你需要具备以下知识点:

    • asyncore 、asynchat模块使用
    • wxPython 图形开发

    这个聊天程序的实验原理如下:

    由于 Python 是一门带 GIL 的语言,所以在 Python 中使用多线程处理IO操作过多的任务并不是很好的选择。同时聊天服务器将同多个 socket 进行通信,所以我们可以基于 asyncore 模块实现聊天服务器。

    aysncore 模块是一个异步的 socket 处理器,通过使用该模块将大大简化异步编程的难度。asynchat 模块在 asyncore 模块的基础上做了进一步封装,简化了基于文本协议的忘了通信任务的开发难度。

    既然要开发聊天程序,那必然需要设计聊天时使用的协议。为了简单起见,我们将要开发的聊天服务器只支持文本协议,通过command message的方式调用相关的操作。比如如果客户端发送以下文本,将执行相应的操作

    # 登录操作
    login
    
    # 在聊天室中发表 hello 内容
    say hello
    
    # 查看聊天室在线用户
    look
    
    # 退出登录
    logout
    
    

    以上协议流中,login, say, look, logout 就是相关协议代码。

    开发步骤如下:

    • 1、服务器类:一个聊天服务器类,通过继承 asyncore 的 dispatcher 类来实现;
    • 2、 会话类:有了服务器类还需要能维护每个用户的连接会话,这里继承 asynchat 的 async_chat 类来实现;
    • 3、协议命令解释器:聊天服务器的协议,具体来说就是处理用户登录,退出,发消息,查询在线用户的代码;
    • 4、房间:实现聊天室的房间了,这里我们定义了三种房间,分别是用户刚登录时的房间、聊天的房间和退出登录的房间;
    • 5、登陆窗口:实现客户端了;
    • 6、聊天窗口:聊天窗口中最主要的就是向服务器发消息并接受服务器的消息;

    嗯,什么?光看这个原理和开发步骤还是不会具体的开发,不会写代码?那我给你详细的开发教程,看么?!

    【python 实现文字聊天室】

    这个教程详细的介绍了开发步骤和开发代码,带你一步一步的实现这个文字聊天室,而且还有在线开发环境,你可以跟着动手去操作哦;

  • 相关阅读:
    容器级虚拟化如何进行资源分配
    容器虚拟化实现的原理
    tensorflow报cudnn错误
    nginx调优
    mysql主从原理及配置
    新安装mysql,如何提升mysql安全性
    LINUX系统软件安装和卸载的常见方法
    如何增加黑客通过ssh入侵的难度--保护ssh的三把锁
    ubuntu-docker入门到放弃(八)创建支持SSH服务的镜像
    ubuntu-docker入门到放弃(七)操作系统
  • 原文地址:https://www.cnblogs.com/shiyanlou/p/7985806.html
Copyright © 2020-2023  润新知