python網路程式設計-基於twsited(1)
阿新 • • 發佈:2018-12-10
協議處理類通常會子類化twisted.com .internet.protocol. protocol。大多數協議處理程式從這個類繼承,或者從它的一個方便子類繼承。協議類的例項按連線例項化,按需例項化,並在連線完成時消失。這意味著持久化配置不會儲存在協議中。
持久化配置儲存在工廠類中,工廠類通常繼承自twisted.com .internet.protocol.Factory。工廠的buildProtocol方法用於為每個新連線建立Protocol。
能夠在多個埠或網路地址上提供相同的服務通常很有用。這就是為什麼工廠不監聽連線,實際上不知道任何關於網路的資訊。
Twisted協議以非同步方式處理資料。當事件從網路到達時,協議protocol響應它們,而事件到達將呼叫協議上的方法。
這是最簡單的協議之一。它只是簡單地回寫所寫的內容,而不響應所有事件。
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
from twisted.internet.protocol import Protocol
class Echo(Protocol):
def dataReceived(self, data):
self.transport.write(data)
下面是一個協議響應另一個事件的例子:
from twisted.internet.protocol import Protocol class QOTD(Protocol): def connectionMade(self): self.transport.write("一天一蘋果,不用請醫生\r\n") self.transport.loseConnection()