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中的上下文管理器
Jun 28 Python
python处理html转义字符的方法详解
Jul 01 Python
python编写Logistic逻辑回归
Dec 30 Python
Python数据持久化shelve模块用法分析
Jun 29 Python
Python3 利用requests 库进行post携带账号密码请求数据的方法
Oct 26 Python
Python之lambda匿名函数及map和filter的用法
Mar 05 Python
Python 运行.py文件和交互式运行代码的区别详解
Jul 02 Python
Python 实现自动导入缺失的库
Oct 29 Python
python正则表达式匹配IP代码实例
Dec 28 Python
Python字符串中删除特定字符的方法
Jan 15 Python
Python爬虫爬取电影票房数据及图表展示操作示例
Mar 27 Python
Python爬虫之Spider类用法简单介绍
Aug 04 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/07/26 PHP
JavaScript Cookie显示用户上次访问的时间和次数
2009/12/08 Javascript
EXTJS内使用ACTIVEX控件引起崩溃问题的解决方法
2010/03/31 Javascript
jquery实现table鼠标经过变色代码
2013/09/25 Javascript
jQuery实现鼠标移到元素上动态提示消息框效果
2013/10/20 Javascript
Javascript 拖拽雏形(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
jquery实现最简单的滑动菜单效果代码
2015/09/12 Javascript
js实现select二级联动下拉菜单
2020/04/17 Javascript
JavaScript中清空数组的方法总结
2016/12/02 Javascript
详解Node中导入模块require和import的区别
2017/08/11 Javascript
在vue项目中引入highcharts图表的方法(详解)
2018/03/05 Javascript
Koa2 之文件上传下载的示例代码
2018/03/29 Javascript
使用Node.js在深度学习中做图片预处理的方法
2019/09/18 Javascript
vue使用swiper实现中间大两边小的轮播图效果
2019/11/24 Javascript
[01:24:34]2014 DOTA2华西杯精英邀请赛5 24 DK VS LGD
2014/05/25 DOTA
[51:29]完美世界DOTA2联赛循环赛 Matador vs Forest BO2第一场 11.05
2020/11/05 DOTA
Python中SOAP项目的介绍及其在web开发中的应用
2015/04/14 Python
详解 Python 与文件对象共事的实例
2017/09/11 Python
微信跳一跳辅助python代码实现
2018/01/05 Python
浅谈python requests 的put, post 请求参数的问题
2019/01/02 Python
分析运行中的 Python 进程详细解析
2019/06/22 Python
Django中的FBV和CBV用法详解
2019/09/15 Python
pygame编写音乐播放器的实现代码示例
2019/11/19 Python
python3+opencv 使用灰度直方图来判断图片的亮暗操作
2020/06/02 Python
python中类与对象之间的关系详解
2020/12/16 Python
SmartBuyGlasses德国:购买太阳镜和眼镜
2019/08/20 全球购物
如何理解委托
2012/01/06 面试题
如何清空Session
2015/02/23 面试题
办公室岗位职责
2014/02/12 职场文书
大学军训感想
2014/02/12 职场文书
面试自我评价范文
2014/09/17 职场文书
2014年工商所工作总结
2014/12/09 职场文书
Python pandas求方差和标准差的方法实例
2021/08/04 Python
Nginx速查手册及常见问题
2022/04/07 Servers
MSSQL基本语法操作
2022/04/11 SQL Server
Go语言grpc和protobuf
2022/04/13 Golang