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判断IP地址合法性的方法实例
Mar 13 Python
浅谈Python中range和xrange的区别
Dec 20 Python
Python爬虫框架Scrapy基本用法入门教程
Jul 26 Python
pytorch: tensor类型的构建与相互转换实例
Jul 26 Python
从DataFrame中提取出Series或DataFrame对象的方法
Nov 10 Python
python yield和Generator函数用法详解
Feb 10 Python
python库skimage给灰度图像染色的方法示例
Apr 27 Python
使用OpenCV获取图像某点的颜色值,并设置某点的颜色
Jun 02 Python
Python无损压缩图片的示例代码
Aug 06 Python
Python grequests模块使用场景及代码实例
Aug 10 Python
教你怎么用Python实现GIF动图的提取及合成
Jun 15 Python
Python 第三方库 openpyxl 的安装过程
Dec 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
phpMyAdmin 安装教程全攻略
2007/03/19 PHP
YiiFramework入门知识点总结(图文教程)
2015/12/28 PHP
phpstorm 配置xdebug的示例代码
2019/03/31 PHP
JSON 学习之完全手册 图文
2007/05/29 Javascript
javascript 常用关键字列表集合
2007/12/04 Javascript
神奇的代码 通杀各种网站-可随意修改复制页面内容
2008/07/17 Javascript
Jquery Ajax学习实例6 向WebService发出请求,返回DataSet(XML) 异步调用
2010/03/18 Javascript
jquery判断浏览器类型的代码
2012/11/05 Javascript
Javascript Ajax异步读取RSS文档具体实现
2013/12/12 Javascript
jQuery后代选择器用法实例
2014/12/23 Javascript
JavaScript中的acos()方法使用详解
2015/06/14 Javascript
JS和jQuery使用submit方法无法提交表单的原因分析及解决办法
2016/05/17 Javascript
jQuery+HTML5+CSS3制作支持响应式布局时间轴插件
2016/08/10 Javascript
jquery实现转盘抽奖功能
2017/01/06 Javascript
JS 中使用Promise 实现红绿灯实例代码(demo)
2017/10/20 Javascript
js使用Promise实现简单的Ajax缓存
2018/11/14 Javascript
jQuery中each和js中forEach的区别分析
2019/02/27 jQuery
推荐几个不错的console调试技巧实现
2019/12/20 Javascript
[01:55]2014DOTA2国际邀请赛快报:国土生病 紧急去医院治疗
2014/07/10 DOTA
Hadoop中的Python框架的使用指南
2015/04/22 Python
Python生成器定义与简单用法实例分析
2018/04/30 Python
Python中文编码知识点
2019/02/18 Python
wxpython绘制音频效果
2019/11/18 Python
pytorch三层全连接层实现手写字母识别方式
2020/01/14 Python
Python Tkinter图形工具使用方法及实例解析
2020/06/15 Python
Big Green Smile法国:领先的英国有机和天然产品在线商店
2021/01/02 全球购物
什么是Smarty变量操作符?如何使用Smarty变量操作符
2014/07/18 面试题
介绍一下结构化程序设计方法和面向对象程序设计方法的区别
2012/06/27 面试题
测试工程师职业规划书
2014/02/06 职场文书
财务主管岗位职责
2014/02/28 职场文书
酒店开业庆典策划方案
2014/05/28 职场文书
个人求职自荐信范文
2014/06/20 职场文书
中小学生学籍证明
2014/10/25 职场文书
五四青年节活动总结
2015/02/10 职场文书
面试通知单大全
2015/04/20 职场文书
导游词之包公祠
2019/11/25 职场文书