1. 程式人生 > >python網路程式設計-基於twsited(1)

python網路程式設計-基於twsited(1)

協議處理類通常會子類化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()