创建步骤
调用reactor.connetcTCP()方法打开一个TCP连接,传递一个ClientFactory对象作为第三个参数。ClientFactory对象等待连接被建立,然后创建一个Protocol对象来管理连接中的数据流。
相关接口介绍
connectTCP
返回一个提供Iconnector的连接器对象,当连接被创建/失败/丢失时,这个连接器将在factory调用各种回调。
def connectTCP(host, port, factory, timeout=30, bindAddress=None):
host 一个ip地址
port 端口号
factory 一个twisted.internet.protocol.ClientFactory的实例
timeout 等待时间
bindAddress (主机,端口)元组绑定到本地地址,或者为None
listenTCP
连接一个给定的协议工厂到给定数字TCP/IP端口。
def listenTCP(port, factory, backlog=50, interface=''):
port 一个监听端口
factory 一个twisted.internet.protocol.ServerFactory 实例
backlog 监听队列的大小
interface
Returns 一个提供监听端口的对象
例子
该例子展示了如何在电脑和Internet之间建立一个连接(www.baidu.com)
//connected.py
from twisted.internet import reactor,protocol
class QuickDisconnectProtocol(protocol.Protocol):
def connectionMade(self):
print"Connected to %s."%self.transport.getPeer().host
self.transport.loseConnection()
class BasicClientFactory(protocol.ClientFactory):
protocol = QuickDisconnectProtocol
def clientConnectionLost(self, connector, reason):
print"Lost connection:%s"%reason.getErrorMessage()
reactor.stop()
def clientConnectionFailed(self, connector, reason):
print"connection failed:%s"%reason.getErrorMessage()
reactor.stop()
reactor.connectTCP('www.baidu.com', 80, BasicClientFactory())
reactor.run()
执行python connection.py,出现如下结果,则成功