輸出結果
更新中
實作代碼
#基于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(8000, factory) #綁定端口和工廠
reactor.run() #啟動