python基于twisted框架编写简单聊天室


Posted in Python onJanuary 02, 2018

本文实例为大家分享了使用python的twisted框架编写一个简单的聊天室具体代码,供大家参考,具体内容如下

下面是基本架构

python基于twisted框架编写简单聊天室

代码:

# -*- coding:utf-8 -*-
from twisted.internet.protocol import Factory
from twisted.protocols.basic import LineReceiver
from twisted.internet import reactor
user = {}
class ChatReci(LineReceiver):    #定义一个类,这里继承的是LineReceiver
 def __init__(self):     #初始化2个变量
  self.name = ''
  self.state = "game"

 def connectionMade(self):      #连接协议,当客户端连接即发出消息
  self.sendLine("input you name?")

 def lineReceived(self, data):     #这个函数定义了取名 打印欢迎界面,以及发送信息给连上来的用户
  if self.name == '':      #判断名字是否为空 如果为空就进行下面的操作
   self.name = data      #给self.name赋值
   self.sendLine("you welcome, %s!" % (self.name))  #打印欢迎信息
   user[self.name] = self     #赋值给user
   print '%s loging' %data    #打印登录信息
  else:          #不为空就打印信息
   message = "<%s> %s" % (self.name, data) #定义聊天信息
   for ur,protocol in user.items():   #取他的用户名
    if protocol != user:     #判断他是不是一个用户 如果不是就传送消息
     protocol.sendLine(message)   #传送消息

factory = Factory()    #定义工厂
factory.protocol = ChatReci  #绑定我的类
reactor.listenTCP(22222, factory) #绑定端口和工厂
reactor.run()       #启动

效果图:

python基于twisted框架编写简单聊天室

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python通过colorama模块在控制台输出彩色文字的方法
Mar 19 Python
编写Python脚本来获取Google搜索结果的示例
May 04 Python
Python画图学习入门教程
Jul 01 Python
Python简单获取自身外网IP的方法
Sep 18 Python
Python中Django 后台自定义表单控件
Mar 28 Python
Django 使用logging打印日志的实例
Apr 28 Python
Python3.6基于正则实现的计算器示例【无优化简单注释版】
Jun 14 Python
详解python 模拟豆瓣登录(豆瓣6.0)
Apr 18 Python
在Python 的线程中运行协程的方法
Feb 24 Python
Python numpy多维数组实现原理详解
Mar 10 Python
python按顺序重命名文件并分类转移到各个文件夹中的实现代码
Jul 21 Python
改变 Python 中线程执行顺序的方法
Sep 24 Python
python http接口自动化脚本详解
Jan 02 #Python
详解用python实现简单的遗传算法
Jan 02 #Python
一个Python最简单的接口自动化框架
Jan 02 #Python
利用Hyperic调用Python实现进程守护
Jan 02 #Python
python实现TF-IDF算法解析
Jan 02 #Python
python实现xlsx文件分析详解
Jan 02 #Python
Python实现KNN邻近算法
Jan 28 #Python
You might like
关于php操作mysql执行数据库查询的一些常用操作汇总
2013/06/24 PHP
php发送post请求函数分享
2014/03/06 PHP
PHP使用GIFEncoder类生成gif动态滚动字幕
2014/07/01 PHP
php集成套件服务器xampp安装使用教程(适合第一次玩PHP的新手)
2015/06/03 PHP
thinkPHP5.0框架应用请求生命周期分析
2017/03/25 PHP
php+resumablejs实现的分块上传 断点续传功能示例
2017/04/18 PHP
Yii框架 session 数据库存储操作方法示例
2019/11/18 PHP
精选的10款用于构建良好易用性网站的jQuery插件
2011/01/23 Javascript
5秒后跳转效果(setInterval/SetTimeOut)
2013/05/03 Javascript
jQuery的attr与prop使用介绍
2013/10/10 Javascript
调整小数的格式保留小数点后两位
2014/05/14 Javascript
js获取当前页面的url网址信息
2014/06/12 Javascript
jQuery实现长按按钮触发事件的方法
2015/02/02 Javascript
javascript常用经典算法实例详解
2015/11/25 Javascript
javascript实现label标签跳出循环操作
2016/03/06 Javascript
jQuery的文档处理程序详解
2016/05/10 Javascript
vue 中filter的多种用法
2018/04/26 Javascript
vue配置多页面的实现方法
2018/05/22 Javascript
angularjs结合html5实现拖拽功能
2018/06/25 Javascript
react native 文字轮播的实现示例
2018/07/27 Javascript
Vue-cli项目部署到Nginx服务器的方法
2019/11/01 Javascript
Python字符和字符值(ASCII或Unicode码值)转换方法
2015/05/21 Python
在Python的Django框架中编写错误提示页面
2015/07/22 Python
Google开源的Python格式化工具YAPF的安装和使用教程
2016/05/31 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
2019/02/25 Python
python区块及区块链的开发详解
2019/07/03 Python
python psutil监控进程实例
2019/12/17 Python
python cv2读取rtsp实时码流按时生成连续视频文件方式
2019/12/25 Python
python3 中使用urllib问题以及urllib详解
2020/08/03 Python
python连接手机自动搜集蚂蚁森林能量的实现代码
2021/02/24 Python
CSS3制作苹果风格键盘特效
2015/02/26 HTML / CSS
*p++ 自增p 还是p所指向的变量
2016/07/16 面试题
资源环境与城市管理专业推荐信
2013/11/30 职场文书
标准自荐信范文
2014/01/29 职场文书
教师节倡议书
2014/08/30 职场文书
Promise面试题详解之控制并发
2021/05/14 面试题