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正则匹配查询港澳通行证办理进度示例分享
Dec 27 Python
从Python的源码浅要剖析Python的内存管理
Apr 16 Python
Python多进程同步简单实现代码
Apr 27 Python
Python生成器generator用法示例
Aug 10 Python
Django Rest framework之认证的实现代码
Dec 17 Python
pandas去重复行并分类汇总的实现方法
Jan 29 Python
Python3删除排序数组中重复项的方法分析
Jan 31 Python
python循环嵌套的多种使用方法解析
Nov 29 Python
Pytorch之view及view_as使用详解
Dec 31 Python
关于多元线性回归分析——Python&amp;SPSS
Feb 24 Python
Python环境搭建过程从安装到Hello World
Feb 05 Python
python库Tsmoothie模块数据平滑化异常点抓取
Jun 10 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
咖啡是不是喝了会上瘾?咖啡是必须品吗!
2021/03/04 新手入门
PHP写的获取各搜索蜘蛛爬行记录代码
2012/08/21 PHP
php获取汉字拼音首字母的方法
2015/10/21 PHP
golang与PHP输出excel示例
2016/07/22 PHP
php中static 静态变量和普通变量的区别
2016/12/01 PHP
javascript 鼠标悬浮图片显示原图 移出鼠标后原图消失(多图)
2009/12/28 Javascript
用jQuery实现一些导航条切换,显示隐藏的实例代码
2013/06/08 Javascript
JavaScript类属性的访问方式详解
2014/02/11 Javascript
Jquery异步提交表单代码分享
2015/03/26 Javascript
JavaScript转换二进制编码为ASCII码的方法
2015/04/16 Javascript
jQuery实现图片局部放大镜效果
2016/03/17 Javascript
在vue中获取dom元素内容的方法
2017/07/10 Javascript
Node.js实现连接mysql数据库功能示例
2017/09/15 Javascript
vue中axios解决跨域问题和拦截器的使用方法
2018/03/07 Javascript
基于angular6.0实现的一个组件懒加载功能示例
2018/04/12 Javascript
JavaScript实现多态和继承的封装操作示例
2018/08/20 Javascript
jQuery实现购物车的总价计算和总价传值功能
2018/11/28 jQuery
解决使用layui的时候form表单中的select等不能渲染的问题
2019/09/18 Javascript
javascript实现文字跑马灯效果
2020/06/18 Javascript
addEventListener()和removeEventListener()追加事件和删除追加事件
2020/12/04 Javascript
react-native 实现购物车滑动删除效果的示例代码
2021/01/15 Javascript
浅析Python中signal包的使用
2015/11/13 Python
python3+requests接口自动化session操作方法
2018/10/13 Python
python3.6根据m3u8下载mp4视频
2019/06/17 Python
python创建与遍历List二维列表的方法
2019/08/16 Python
Python高级特性 切片 迭代解析
2019/08/23 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
django框架中间件原理与用法详解
2019/12/10 Python
python实现局域网内实时通信代码
2019/12/22 Python
python中yield的用法详解
2021/01/13 Python
html5 touch事件实现触屏页面上下滑动(二)
2016/03/10 HTML / CSS
选购世界上最好的美妆品:Cult Beauty
2017/11/03 全球购物
高三高考决心书
2014/03/11 职场文书
2014年圣诞节促销方案
2014/03/14 职场文书
省级三好学生主要事迹材料
2015/11/03 职场文书
Win11右下角图标点了没反应怎么办?Win11点击右下角图标无反应解决方法汇总
2022/07/07 数码科技