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将html转成PDF的实现代码(包含中文)
Mar 04 Python
python局域网ip扫描示例分享
Apr 03 Python
Python判断操作系统类型代码分享
Nov 22 Python
Python re模块介绍
Nov 30 Python
Python3解决棋盘覆盖问题的方法示例
Dec 07 Python
Python中几种属性访问的区别与用法详解
Oct 10 Python
解决pycharm回车之后不能换行或不能缩进的问题
Jan 16 Python
python利用selenium进行浏览器爬虫
Apr 25 Python
Python列表元素常见操作简单示例
Oct 25 Python
Python多线程操作之互斥锁、递归锁、信号量、事件实例详解
Mar 24 Python
基于python 取余问题(%)详解
Jun 03 Python
Python 游戏大作炫酷机甲闯关游戏爆肝数千行代码实现案例进阶
Oct 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 多线程上下文中安全写文件实现代码
2009/12/28 PHP
基于asp+ajax和数据库驱动的二级联动菜单
2010/05/06 PHP
js加解密 脚本解密
2008/02/22 Javascript
javascript 写类方式之十
2009/07/05 Javascript
jquery 倒计时效果实现秒杀思路
2013/09/11 Javascript
nodejs 实现模拟form表单上传文件
2014/07/14 NodeJs
JavaScript截断字符串的方法
2015/07/15 Javascript
网页挂马方式整理及详细介绍
2016/11/03 Javascript
基于bootstrap实现bootstrap中文网巨幕效果
2017/05/02 Javascript
老生常谈js数据类型
2017/08/03 Javascript
jQuery 点击获取验证码按钮及倒计时功能
2018/09/20 jQuery
vue指令之表单控件绑定v-model v-model与v-bind结合使用
2019/04/17 Javascript
js事件触发操作实例分析
2019/06/21 Javascript
学习 Vue.js 遇到的那些坑
2021/02/02 Vue.js
[04:11]DOTA2上海特级锦标赛主赛事首日TOP10
2016/03/03 DOTA
python使用reportlab画图示例(含中文汉字)
2013/12/03 Python
Python实现Sqlite将字段当做索引进行查询的方法
2016/07/21 Python
python3制作捧腹网段子页爬虫
2017/02/12 Python
详解python中的线程
2018/02/10 Python
解决python opencv无法显示图片的问题
2018/10/28 Python
Python3.5 Json与pickle实现数据序列化与反序列化操作示例
2019/04/29 Python
pandas的qcut()方法详解
2019/07/06 Python
使用Python完成15位18位身份证的互转功能
2019/11/06 Python
解决pycharm导入本地py文件时,模块下方出现红色波浪线的问题
2020/06/01 Python
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
美国工业用品采购网站:Zoro.com
2020/10/27 全球购物
explicit和implicit的含义
2012/11/15 面试题
家长会邀请书
2014/01/25 职场文书
《童趣》教学反思
2014/02/19 职场文书
大一学生职业生涯规划
2014/03/11 职场文书
植树节活动总结
2014/04/30 职场文书
新闻学专业求职信
2014/07/28 职场文书
党的群众路线教育实践活动督导组工作情况汇报
2014/10/28 职场文书
酒店前台辞职书
2015/02/26 职场文书
2016年“抗战胜利纪念日”71周年校园广播稿
2015/12/18 职场文书
看看如何用Python绘制小米新版天价logo
2021/04/20 Python