python基于twisted框架編寫簡單聊天室
更新時間:2018年01月02日 11:56:31 作者:PythonTZ
這篇文章主要為大家詳細(xì)介紹了python基于twisted框架編寫簡單聊天室,具有一定的參考價值,感興趣的小伙伴們可以參考一下
本文實例為大家分享了使用python的twisted框架編寫一個簡單的聊天室具體代碼,供大家參考,具體內(nèi)容如下
下面是基本架構(gòu)
代碼:
# -*- 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): #連接協(xié)議,當(dāng)客戶端連接即發(fā)出消息 self.sendLine("input you name?") def lineReceived(self, data): #這個函數(shù)定義了取名 打印歡迎界面,以及發(fā)送信息給連上來的用戶 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() #啟動
效果圖:
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
您可能感興趣的文章:
- python如何通過twisted搭建socket服務(wù)
- Python3.6中Twisted模塊安裝的問題與解決
- python安裝twisted的問題解析
- python如何通過twisted實現(xiàn)數(shù)據(jù)庫異步插入
- python 編程之twisted詳解及簡單實例
- Python 基于Twisted框架的文件夾網(wǎng)絡(luò)傳輸源碼
- 剖析Python的Twisted框架的核心特性
- 實例解析Python的Twisted框架中Deferred對象的用法
- 詳解Python的Twisted框架中reactor事件管理器的用法
- 使用Python的Twisted框架編寫非阻塞程序的代碼示例
- Python的Twisted框架中使用Deferred對象來管理回調(diào)函數(shù)
- 使用Python的Twisted框架構(gòu)建非阻塞下載程序的實例教程
- Python的Twisted框架上手前所必須了解的異步編程思想
- 使用Python的Treq on Twisted來進行HTTP壓力測試
- 利用Python的Twisted框架實現(xiàn)webshell密碼掃描器的教程
- 使用Python的Twisted框架實現(xiàn)一個簡單的服務(wù)器
- 使用Python的Twisted框架編寫簡單的網(wǎng)絡(luò)客戶端
- python開發(fā)實例之Python的Twisted框架中Deferred對象的詳細(xì)用法與實例
相關(guān)文章
Python中enumerate()函數(shù)詳細(xì)分析(附多個Demo)
Python的enumerate()函數(shù)是一個內(nèi)置函數(shù),主要用于在遍歷循環(huán)中獲取每個元素的索引以及對應(yīng)的值,這篇文章主要介紹了Python中enumerate()函數(shù)的相關(guān)資料,需要的朋友可以參考下2024-10-10Python利用多進程將大量數(shù)據(jù)放入有限內(nèi)存的教程
這篇文章主要介紹了Python利用多進程將大量數(shù)據(jù)放入有限內(nèi)存的教程,使用了multiprocessing和pandas來加速內(nèi)存中的操作,需要的朋友可以參考下2015-04-04Python實現(xiàn)批量檢測HTTP服務(wù)的狀態(tài)
本文給大家分享的是一個使用python實現(xiàn)的批量檢測web服務(wù)可用性的腳本代碼,主要功能有測試一組url的可用性(可以包括HTTP狀態(tài)、響應(yīng)時間等)并統(tǒng)計出現(xiàn)不可用情況的次數(shù)和頻率等。2016-10-10Python獲取二維數(shù)組的行列數(shù)的2種方法
這篇文章主要介紹了Python獲取二維數(shù)組的行列數(shù)的2種方法,文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下2020-02-02