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实现从ftp服务器下载文件的方法
Apr 30 Python
分析并输出Python代码依赖的库的实现代码
Aug 09 Python
利用Python操作消息队列RabbitMQ的方法教程
Jul 19 Python
Python SQLite3简介
Feb 22 Python
Java实现的执行python脚本工具类示例【使用jython.jar】
Mar 29 Python
Python3导入CSV文件的实例(跟Python2有些许的不同)
Jun 22 Python
Django之创建引擎索引报错及解决详解
Jul 17 Python
详解将Python程序(.py)转换为Windows可执行文件(.exe)
Jul 19 Python
python3 深浅copy对比详解
Aug 12 Python
Python with语句和过程抽取思想
Dec 23 Python
Python通过Tesseract库实现文字识别
Mar 05 Python
利用Python实现Excel的文件间的数据匹配功能
Jun 16 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实现单文件、多个单文件、多文件上传函数的封装示例
2019/09/02 PHP
javascript重复绑定事件造成的后果说明
2013/03/02 Javascript
html文本框提示效果的示例代码
2014/06/28 Javascript
JS实现滑动菜单效果代码(包括Tab,选项卡,横向等效果)
2015/09/24 Javascript
浅析Bootstrip的select控件绑定数据的问题
2016/05/10 Javascript
jQuery 判断是否包含在数组中Array[]的方法
2016/08/03 Javascript
Javascript点击按钮随机改变数字与其颜色
2016/09/01 Javascript
connection reset by peer问题总结及解决方案
2016/10/21 Javascript
javascript实现获取图片大小及图片等比缩放的方法
2016/11/24 Javascript
微信小程序进行微信支付的步骤昂述
2016/12/01 Javascript
JS获取月的第几周和年的第几周实例代码
2018/12/05 Javascript
vue父组件触发事件改变子组件的值的方法实例详解
2019/05/07 Javascript
JS中call()和apply()的功能及用法实例分析
2019/06/28 Javascript
基于vue实现圆形菜单栏组件
2019/07/05 Javascript
vue中created和mounted的区别浅析
2019/08/13 Javascript
用原生JS实现爱奇艺首页导航栏代码实例
2019/09/19 Javascript
小程序实现日历左右滑动效果
2019/10/21 Javascript
vue输入框使用模糊搜索功能的实现代码
2020/05/26 Javascript
详解Python的Django框架中inclusion_tag的使用
2015/07/21 Python
Python实现Mysql数据库连接池实例详解
2017/04/11 Python
Python的装饰器使用详解
2017/06/26 Python
PyTorch线性回归和逻辑回归实战示例
2018/05/22 Python
Pytest参数化parametrize使用代码实例
2020/02/22 Python
什么是python的id函数
2020/06/11 Python
Django中使用Celery的方法步骤
2020/12/07 Python
css3模拟jq点击事件的实例代码
2017/07/06 HTML / CSS
CSS3的文字阴影—text-shadow的使用方法
2012/12/25 HTML / CSS
用HTML5制作一个简单的桌球游戏的教程
2015/05/12 HTML / CSS
html5 canvas 实现光线沿不规则路径运动
2020/04/20 HTML / CSS
阿迪达斯西班牙官方网站:adidas西班牙
2016/07/21 全球购物
高一政治教学反思
2014/01/28 职场文书
《我为你骄傲》教学反思
2014/02/20 职场文书
模特大赛策划方案
2014/05/28 职场文书
大学生就业推荐表自我评价
2015/03/02 职场文书
廉政党课工作报告案例
2019/06/21 职场文书
python读取mnist数据集方法案例详解
2021/09/04 Python