3
我試圖在Twisted中實現一個SSL客戶端,它只需連接到套接字並讀取二進制數據(特別是數據元組)。我已經得到代碼,似乎連接和斷開連接成功,但沒有數據是有史以來從套接字讀取。從扭曲的SSL套接字讀取
class FeedbackHandler(LineReceiver):
MAX_LENGTH = 1024*1024
def connectionMade(self):
log.debug('feedbackHandler connectionMade')
def rawDataReceived(self, data):
log.debug('feedbackHandler rawDataReceived %s' % binascii.hexlify(data))
self.io.write(data)
def lineReceived(self, data):
log.debug('feedbackHandler lineReceived %s' % binascii.hexlify(data))
self.io.write(data)
def connectionLost(self, reason):
log.debug('feedbackHandler connectionLost %s' % reason)
self.deferred.callback(self.io.getValue())
io.close()
這踢它關閉代碼:
factory = self.clientProtocolFactory() # a ClientFactory instance
context = self.getContextFactory(CERT_FILE) # a ClientContextFactory
reactor.connectSSL(server, port, factory, context)
但是當它運行沒有接收到的方法調用,不管setRawMode
。有沒有什麼可以從服務器讀取?連接時立即調用connectionMade
和connectionLost
,並以ConnectionDone
錯誤實例終止。
連接完成後,對方是否發送了一些內容? – iny 2010-01-03 10:28:36
如果'self.io'是'StringIO'的一個實例,那麼你應該調用'self.io.getvalue()'而不是'self.io.getValue()'。 – jfs 2010-06-09 12:56:25