python基于twisted框架编写简单聊天室

 更新时间:2018年01月02日 11:56:31   作者:PythonTZ  
这篇文章主要为大家详细介绍了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实现的序列化和反序列化二叉树算法示例

    Python实现的序列化和反序列化二叉树算法示例

    这篇文章主要介绍了Python实现的序列化和反序列化二叉树算法,结合实例形式分析了Python二叉树的构造、遍历、序列化、反序列化等相关操作技巧,需要的朋友可以参考下
    2019-03-03
  • python 读取yaml文件的两种方法(在unittest中使用)

    python 读取yaml文件的两种方法(在unittest中使用)

    这篇文章主要介绍了python 读取yaml文件的两种方法(在unittest中使用),帮助大家更好的理解和学习python,感兴趣的朋友可以了解下
    2020-12-12
  • Python从入门到精通之类的使用详解

    Python从入门到精通之类的使用详解

    Python是一种功能强大且广泛使用的编程语言,它支持面向对象编程(OOP),本文将介绍Python中类的使用,包括类的创建、属性和方法的定义、继承和多态等关键技术点,希望对大家有所帮助
    2023-07-07
  • python使用mitmproxy抓取浏览器请求的方法

    python使用mitmproxy抓取浏览器请求的方法

    今天小编就为大家分享一篇python使用mitmproxy抓取浏览器请求的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • Python面向对象之类和对象属性的增删改查操作示例

    Python面向对象之类和对象属性的增删改查操作示例

    这篇文章主要介绍了Python面向对象之类和对象属性的增删改查操作,结合实例形式分析了Python面向对象相关的类与对象属性常见操作技巧,需要的朋友可以参考下
    2018-12-12
  • python字符串大小写转换的三种方法

    python字符串大小写转换的三种方法

    本文主要介绍了python字符串大小写转换的三种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-02-02
  • Python机器学习之实现模型持久化与加载

    Python机器学习之实现模型持久化与加载

    在实际的机器学习项目中,我们通常需要将训练好的模型保存到磁盘,本文我们会介绍如何在Python中使用pickle和joblib库将训练好的模型持久化到磁盘,需要的可以参考一下
    2023-05-05
  • python接口,继承,重载运算符详解

    python接口,继承,重载运算符详解

    这篇文章主要给大家介绍了关于Python接口,继承,重载运算符的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们参考借鉴,下面随着小编来一起学习学习吧
    2021-08-08
  • Python numpy逻辑运算方法举例介绍

    Python numpy逻辑运算方法举例介绍

    这篇文章主要介绍了Python numpy逻辑运算方法的相关资料,NumPy中提供了一系列逻辑运算方法,用于执行逐元素的逻辑和比较操作,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-10-10
  • 你真的了解Python的random模块吗?

    你真的了解Python的random模块吗?

    这篇文章主要介绍了Python的random模块的相关内容,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12

最新评论