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实现的可以拷贝或剪切一个文件列表中的所有文件
Apr 30 Python
PHP网页抓取之抓取百度贴吧邮箱数据代码分享
Apr 13 Python
Python爬取京东的商品分类与链接
Aug 26 Python
python里使用正则表达式的组嵌套实例详解
Oct 24 Python
Python决策树分类算法学习
Dec 22 Python
python 3.6.2 安装配置方法图文教程
Sep 18 Python
python将txt等文件中的数据读为numpy数组的方法
Dec 22 Python
python3去掉string中的标点符号方法
Jan 22 Python
Flask框架学习笔记之路由和反向路由详解【图文与实例】
Aug 12 Python
python 基于dlib库的人脸检测的实现
Nov 08 Python
Python内存泄漏和内存溢出的解决方案
Sep 26 Python
如何基于python实现单目三维重建详解
Jun 25 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
《五等分的花嫁》漫画完结!2020年10月第2期TV动画制作组换血!
2020/03/06 日漫
浏览器关闭后,能继续执行的php函数(ignore_user_abort)
2012/08/01 PHP
php读取目录及子目录下所有文件名的方法
2014/10/20 PHP
php函数serialize()与unserialize()用法实例
2014/11/06 PHP
PHP批量去除BOM头代码分享
2015/06/26 PHP
php无限分类使用concat如何实现
2015/11/05 PHP
phalcon model在插入或更新时会自动验证非空字段的解决办法
2016/12/29 PHP
jQery使网页在显示器上居中显示适用于任何分辨率
2014/06/09 Javascript
5个JavaScript经典面试题
2014/10/13 Javascript
JavaScript模拟重力状态下抛物运动的方法
2015/03/03 Javascript
删除javascript所创建子节点的方法
2015/05/21 Javascript
jQuery实现简单的DIV拖动效果
2016/02/19 Javascript
AngularJS实现一次监听多个值发生的变化
2016/08/31 Javascript
JavaScript表单验证完美代码
2017/03/02 Javascript
浅谈对Angular中的生命周期钩子的理解
2017/07/31 Javascript
Vuex实现计数器以及列表展示效果
2018/03/10 Javascript
Nest.js 授权验证的方法示例
2021/02/22 Javascript
[05:46]DOTA2英雄梦之声_第18期_陈
2014/06/20 DOTA
[01:05:07]DOTA2-DPC中国联赛 正赛 DLG vs Dragon BO3 第一场2月1日
2021/03/11 DOTA
python中的字典使用分享
2016/07/31 Python
Python调用C# Com dll组件实战教程
2017/10/12 Python
Python 绘制酷炫的三维图步骤详解
2019/07/12 Python
python 8种必备的gui库
2020/08/27 Python
selenium切换标签页解决get超时问题的完整代码
2020/08/30 Python
OpenCV灰度化之后图片为绿色的解决
2020/12/01 Python
HTML5 实现一个访问本地文件的实例
2012/12/13 HTML / CSS
什么是Linux虚拟文件系统VFS
2012/01/31 面试题
具结保证书
2015/01/17 职场文书
合理化建议书
2015/02/04 职场文书
2015年调度员工作总结
2015/04/30 职场文书
校车司机安全责任书
2015/05/11 职场文书
百年校庆宣传标语口号
2015/12/26 职场文书
建国70周年的心得体会(2篇)
2019/09/20 职场文书
导游词之山西祁县乔家大院
2019/10/14 职场文书
SQL Server中搜索特定的对象
2022/05/25 SQL Server
插件导致ECharts被全量引入的坑示例解析
2022/09/23 Javascript