码迷,mamicode.com
首页 > 编程语言 > 详细

Python实现文字聊天室

时间:2017-12-05 12:02:41      阅读:151      评论:0      收藏:0      [点我收藏+]

标签:pat   编程   ima   客户端   登陆   解释   教程   out   文本   

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

像这样的:

技术分享图片

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

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

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

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

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

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

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

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

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

开发步骤如下:

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

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

【python 实现文字聊天室】

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

Python实现文字聊天室

标签:pat   编程   ima   客户端   登陆   解释   教程   out   文本   

原文地址:http://www.cnblogs.com/shiyanlou/p/7985806.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!