使用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() #启动

效果图:

效果图1:

效果图2

资料视频教程领取方式:

1、点赞+评论(勾选“同时转发”)
2、关注小编。并私信回复关键字【资料】
(一定要私信哦~点击我的头像就能看到私信按钮了)

python开发一个简单的聊天室相关推荐

  1. 实战|轻松用 Python 开发一个简单有趣的聊天小程序

    前言 Internet 协议集支持一个无连接的传输协议,该协议称为用户数据报协议(UDP,User Datagram Protocol). UDP 为应用程序提供了一种无需建立连接就可以发送封装的 I ...

  2. 用ServletContext做一个简单的聊天室

    这里主要是ServletContext的一个特性:ServletContext是一个公共的空间,可以被所有的客户访问.由此可见ServletContext比cookie和session的作用范围要大[ ...

  3. Netty - 一个简单的聊天室小项目

     经过一段时间对Netty的学习,我们对Netty各版本以及像ProtocolBuffers等技术应用都有了不少相关的了解, 我们就用这段时间学到的只是做一个简单的聊天室的小项目来练习自己学到的技术. ...

  4. 国外大牛教你,如何用Python开发一个简单的区块链数据结构| 建议收藏

    来源 | Medium 作者 | arjuna sky kok 整理 / Aholiab 出品 | 区块链大本营(blockchain_camp) 根据IEEE此前的一项调查,Python已成为最受开 ...

  5. 通过python 构建一个简单的聊天服务器

    构建一个 Python 聊天服务器 一个简单的聊天服务器 现在您已经了解了 Python 中基本的网络 API:接下来可以在一个简单的应用程序中应用这些知识了.在本节中,将构建一个简单的聊天服务器.使 ...

  6. 前端+node实现一个简单的聊天室功能

    简单的实现一个聊天室功能 目录 前言 一.了解一下WebSocket 我们有了http协议,为什么会出现ws呢? ws出现之前,我们是怎么实现双向通信的呢? 二.使用到的websocket库 三.聊天 ...

  7. 使用Unity制作一个简单的聊天室

    使用控制台作为一个服务器,在Unity中开发客户端,制作一个简易的聊天室,无论哪个客户端发送消息,其他的客户端都会实时的显示出来. 服务器代码 using System; using System.C ...

  8. python游戏最简单代码-如何利用Python开发一个简单的猜数字游戏

    前言 本文介绍如何使用Python制作一个简单的猜数字游戏. 游戏规则 玩家将猜测一个数字.如果猜测是正确的,玩家赢.如果不正确,程序会提示玩家所猜的数字与实际数字相比是"大(high)&q ...

  9. Python开发一个简单的BBS论坛

    项目:开发一个简单的BBS论坛 需求: 整体参考"抽屉新热榜" + "虎嗅网" 实现不同论坛版块 帖子列表展示 帖子评论数.点赞数展示 在线用户展示 允许登录用 ...

最新文章

  1. python:自动化测试 playwright 库上传和下载
  2. 《ACM国际大学生程序设计竞赛题解Ⅰ》——模拟题
  3. [APIO2018] Duathlon 铁人两项
  4. ASP.NET MVC 环境配置,从1.0到2.0的转换和学习资源等
  5. keepalived实现nginx的高可用(双主模型)
  6. linux隔一级目录找文件,linux查看文件和子目录
  7. 绕过waf mysql爆库_iwebsec刷题记录-SQL注入漏洞
  8. selector选择器查询
  9. python 数据结构与算法 day04 快速排序
  10. java中properties类_Java中的Properties类详解
  11. 回文自动机算法+马拉车算法概述及习题【回文串系列问题】
  12. form表单提交serialize()方法和
  13. EastFax传真服务器系统与Email相比有什么优势
  14. 零信任学习系列一——研读NIST零信任架构(正式版)
  15. 点赋科技:如何提高淘宝店铺的流量?
  16. tan x x的matlab求解,matlab画x=tan(x)
  17. 流利阅读12.23 The 'great dying': rapid warming caused largest extinction event ever, report says
  18. OpenAI又放大招:连接文本与图像的CLIP,在ImageNet上效果媲美ResNet50
  19. 小马哥robofly四轴气压计定高的不完全解读
  20. 国内外常用数据库介绍

热门文章

  1. 解决新版谷歌Chrome浏览器Cookie跨域失效问题
  2. VC 控件背景透明、文字背景透明
  3. Matlab p文件 转换为m文件MATLAB matlab pcode,matlab p
  4. 表单域 表单标签及表单控件的使用
  5. 等压线上怎么画风向_等压线图上怎么画风向?
  6. HTML5进阶(二)HBuilder实现软件自动升级
  7. 百年孤独:不管你拥有什么,我们生来就是孤独
  8. android 蓝牙串口数据格式,Android 蓝牙串口调试程序开发
  9. 基于爬虫的数据分析--Python3抓取网易云音乐原理及实践
  10. 4.jQuery中Ajax提交表单数据