本文整理汇总了Python中twisted.internet.reactor.listenTCP方法的典型用法代码示例。如果您正苦于以下问题:Python reactor.listenTCP方法的具体用法?Python reactor.listenTCP怎么用?Python reactor.listenTCP使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类twisted.internet.reactor
的用法示例。
在下文中一共展示了reactor.listenTCP方法的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: boot_frontend
# 需要导入模块: from twisted.internet import reactor [as 别名]
# 或者: from twisted.internet.reactor import listenTCP [as 别名]
def boot_frontend(config, debug=False):
"""
Boot a Pyramid WSGI application as Twisted component
"""
http_port = int(config.get('config-web', 'http_port'))
websocket_uri = unicode(config.get('wamp', 'listen'))
# https://stackoverflow.com/questions/13122519/serving-pyramid-application-using-twistd/13138610#13138610
config = resource_filename('kotori.frontend', 'development.ini')
application = get_app(config, 'main')
# https://twistedmatrix.com/documents/13.1.0/web/howto/web-in-60/wsgi.html
resource = WSGIResource(reactor, reactor.getThreadPool(), application)
reactor.listenTCP(http_port, Site(resource))
示例2: startService
# 需要导入模块: from twisted.internet import reactor [as 别名]
# 或者: from twisted.internet.reactor import listenTCP [as 别名]
def startService(self):
"""
Start TCP listener on designated HTTP port,
serving ``HttpChannelContainer`` as root resource.
"""
# Don't start service twice
if self.running == 1:
return
self.running = 1
# Prepare startup
http_listen = self.settings.kotori.http_listen
http_port = int(self.settings.kotori.http_port)
log.info('Starting HTTP service on {http_listen}:{http_port}', http_listen=http_listen, http_port=http_port)
# Configure root Site object and start listening to requests.
# This must take place only once - can't bind to the same port multiple times!
factory = LocalSite(self.root)
reactor.listenTCP(http_port, factory, interface=http_listen)
示例3: testDistrib
# 需要导入模块: from twisted.internet import reactor [as 别名]
# 或者: from twisted.internet.reactor import listenTCP [as 别名]
def testDistrib(self):
# site1 is the publisher
r1 = resource.Resource()
r1.putChild("there", static.Data("root", "text/plain"))
site1 = server.Site(r1)
self.f1 = PBServerFactory(distrib.ResourcePublisher(site1))
self.port1 = reactor.listenTCP(0, self.f1)
self.sub = distrib.ResourceSubscription("127.0.0.1",
self.port1.getHost().port)
r2 = resource.Resource()
r2.putChild("here", self.sub)
f2 = MySite(r2)
self.port2 = reactor.listenTCP(0, f2)
agent = client.Agent(reactor)
d = agent.request(b"GET", "http://127.0.0.1:%d/here/there" % \
(self.port2.getHost().port,))
d.addCallback(client.readBody)
d.addCallback(self.assertEqual, 'root')
return d
示例4: test_getPageDeprecated
# 需要导入模块: from twisted.internet import reactor [as 别名]
# 或者: from twisted.internet.reactor import listenTCP [as 别名]
def test_getPageDeprecated(self):
"""
L{client.getPage} is deprecated.
"""
port = reactor.listenTCP(
0, server.Site(Data(b'', 'text/plain')), interface="127.0.0.1")
portno = port.getHost().port
self.addCleanup(port.stopListening)
url = networkString("http://127.0.0.1:%d" % (portno,))
d = client.getPage(url)
warningInfo = self.flushWarnings([self.test_getPageDeprecated])
self.assertEqual(len(warningInfo), 1)
self.assertEqual(warningInfo[0]['category'], DeprecationWarning)
self.assertEqual(
warningInfo[0]['message'],
"twisted.web.client.getPage was deprecated in "
"Twisted 16.7.0; please use https://pypi.org/project/treq/ or twisted.web.client.Agent instead")
return d.addErrback(lambda _: None)
示例5: test_downloadPageDeprecated
# 需要导入模块: from twisted.internet import reactor [as 别名]
# 或者: from twisted.internet.reactor import listenTCP [as 别名]
def test_downloadPageDeprecated(self):
"""
L{client.downloadPage} is deprecated.
"""
port = reactor.listenTCP(
0, server.Site(Data(b'', 'text/plain')), interface="127.0.0.1")
portno = port.getHost().port
self.addCleanup(port.stopListening)
url = networkString("http://127.0.0.1:%d" % (portno,))
path = FilePath(self.mktemp())
d = client.downloadPage(url, path.path)
warningInfo = self.flushWarnings([self.test_downloadPageDeprecated])
self.assertEqual(len(warningInfo), 1)
self.assertEqual(warningInfo[0]['category'], DeprecationWarning)
self.assertEqual(
warningInfo[0]['message'],
"twisted.web.client.downloadPage was deprecated in "
"Twisted 16.7.0; please use https://pypi.org/project/treq/ or twisted.web.client.Agent instead")
return d.addErrback(lambda _: None)
示例6: global_tcpip_forward
# 需要导入模块: from twisted.internet import reactor [as 别名]
# 或者: from twisted.internet.reactor import listenTCP [as 别名]
def global_tcpip_forward(self, data):
hostToBind, portToBind = forwarding.unpackGlobal_tcpip_forward(data)
from twisted.internet import reactor
try:
listener = self._runAsUser(
reactor.listenTCP, portToBind,
forwarding.SSHListenForwardingFactory(
self.conn,
(hostToBind, portToBind),
forwarding.SSHListenServerForwardingChannel),
interface=hostToBind)
except:
return 0
else:
self.listeners[(hostToBind, portToBind)] = listener
if portToBind == 0:
portToBind = listener.getHost()[2] # The port
return 1, struct.pack('>L', portToBind)
else:
return 1
示例7: serviceStarted
# 需要导入模块: from twisted.internet import reactor [as 别名]
# 或者: from twisted.internet.reactor import listenTCP [as 别名]
def serviceStarted(self):
if not options['noshell']:
self.openChannel(SSHSession())
if options.localForwards:
for localPort, hostport in options.localForwards:
reactor.listenTCP(localPort,
forwarding.SSHListenForwardingFactory(self,
hostport,
forwarding.SSHListenClientForwardingChannel))
if options.remoteForwards:
for remotePort, hostport in options.remoteForwards:
log.msg('asking for remote forwarding for %s:%s' %
(remotePort, hostport))
data = forwarding.packGlobal_tcpip_forward(
('0.0.0.0', remotePort))
self.sendGlobalRequest('tcpip-forward', data)
self.remoteForwards[remotePort] = hostport
示例8: test_serverRepr
# 需要导入模块: from twisted.internet import reactor [as 别名]
# 或者: from twisted.internet.reactor import listenTCP [as 别名]
def test_serverRepr(self):
"""
Check that the repr string of the server transport get the good port
number if the server listens on 0.
"""
server = MyServerFactory()
serverConnMade = server.protocolConnectionMade = defer.Deferred()
port = reactor.listenTCP(0, server)
self.addCleanup(port.stopListening)
client = MyClientFactory()
clientConnMade = client.protocolConnectionMade = defer.Deferred()
connector = reactor.connectTCP("127.0.0.1",
port.getHost().port, client)
self.addCleanup(connector.disconnect)
def check(result):
serverProto, clientProto = result
portNumber = port.getHost().port
self.assertEqual(
repr(serverProto.transport),
"<AccumulatingProtocol #0 on %s>" % (portNumber,))
serverProto.transport.loseConnection()
clientProto.transport.loseConnection()
return defer.gatherResults([serverConnMade, clientConnMade]
).addCallback(check)
示例9: test_directConnectionLostCall
# 需要导入模块: from twisted.internet import reactor [as 别名]
# 或者: from twisted.internet.reactor import listenTCP [as 别名]
def test_directConnectionLostCall(self):
"""
If C{connectionLost} is called directly on a port object, it succeeds
(and doesn't expect the presence of a C{deferred} attribute).
C{connectionLost} is called by L{reactor.disconnectAll} at shutdown.
"""
serverFactory = MyServerFactory()
port = reactor.listenTCP(0, serverFactory, interface="127.0.0.1")
portNumber = port.getHost().port
port.connectionLost(None)
client = MyClientFactory()
serverFactory.protocolConnectionMade = defer.Deferred()
client.protocolConnectionMade = defer.Deferred()
reactor.connectTCP("127.0.0.1", portNumber, client)
def check(ign):
client.reason.trap(error.ConnectionRefusedError)
return client.failDeferred.addCallback(check)
示例10: test_closePortInProtocolFactory
# 需要导入模块: from twisted.internet import reactor [as 别名]
# 或者: from twisted.internet.reactor import listenTCP [as 别名]
def test_closePortInProtocolFactory(self):
"""
A port created with L{IReactorTCP.listenTCP} can be connected to with
L{IReactorTCP.connectTCP}.
"""
f = ClosingFactory()
port = reactor.listenTCP(0, f, interface="127.0.0.1")
f.port = port
self.addCleanup(f.cleanUp)
portNumber = port.getHost().port
clientF = MyClientFactory()
reactor.connectTCP("127.0.0.1", portNumber, clientF)
def check(x):
self.assertTrue(clientF.protocol.made)
self.assertTrue(port.disconnected)
clientF.lostReason.trap(error.ConnectionDone)
return clientF.deferred.addCallback(check)
示例11: _connectedClientAndServerTest
# 需要导入模块: from twisted.internet import reactor [as 别名]
# 或者: from twisted.internet.reactor import listenTCP [as 别名]
def _connectedClientAndServerTest(self, callback):
"""
Invoke the given callback with a client protocol and a server protocol
which have been connected to each other.
"""
serverFactory = MyServerFactory()
serverConnMade = defer.Deferred()
serverFactory.protocolConnectionMade = serverConnMade
port = reactor.listenTCP(0, serverFactory, interface="127.0.0.1")
self.addCleanup(port.stopListening)
portNumber = port.getHost().port
clientF = MyClientFactory()
clientConnMade = defer.Deferred()
clientF.protocolConnectionMade = clientConnMade
reactor.connectTCP("127.0.0.1", portNumber, clientF)
connsMade = defer.gatherResults([serverConnMade, clientConnMade])
def connected(result):
serverProtocol, clientProtocol = result
callback(serverProtocol, clientProtocol)
serverProtocol.transport.loseConnection()
clientProtocol.transport.loseConnection()
connsMade.addCallback(connected)
return connsMade
示例12: test_tcpNoDelay
# 需要导入模块: from twisted.internet import reactor [as 别名]
# 或者: from twisted.internet.reactor import listenTCP [as 别名]
def test_tcpNoDelay(self):
"""
The transport of a protocol connected with L{IReactorTCP.connectTCP} or
L{IReactor.TCP.listenTCP} can have its I{TCP_NODELAY} state inspected
and manipulated with L{ITCPTransport.getTcpNoDelay} and
L{ITCPTransport.setTcpNoDelay}.
"""
def check(serverProtocol, clientProtocol):
for p in [serverProtocol, clientProtocol]:
transport = p.transport
self.assertEqual(transport.getTcpNoDelay(), 0)
transport.setTcpNoDelay(1)
self.assertEqual(transport.getTcpNoDelay(), 1)
transport.setTcpNoDelay(0)
self.assertEqual(transport.getTcpNoDelay(), 0)
return self._connectedClientAndServerTest(check)
示例13: test_cannotBind
# 需要导入模块: from twisted.internet import reactor [as 别名]
# 或者: from twisted.internet.reactor import listenTCP [as 别名]
def test_cannotBind(self):
"""
L{IReactorTCP.listenTCP} raises L{error.CannotListenError} if the
address to listen on is already in use.
"""
f = MyServerFactory()
p1 = reactor.listenTCP(0, f, interface='127.0.0.1')
self.addCleanup(p1.stopListening)
n = p1.getHost().port
dest = p1.getHost()
self.assertEqual(dest.type, "TCP")
self.assertEqual(dest.host, "127.0.0.1")
self.assertEqual(dest.port, n)
# make sure new listen raises error
self.assertRaises(error.CannotListenError,
reactor.listenTCP, n, f, interface='127.0.0.1')
示例14: testWriter
# 需要导入模块: from twisted.internet import reactor [as 别名]
# 或者: from twisted.internet.reactor import listenTCP [as 别名]
def testWriter(self):
f = protocol.Factory()
f.protocol = LargeBufferWriterProtocol
f.done = 0
f.problem = 0
f.len = self.datalen
wrappedF = FireOnCloseFactory(f)
p = reactor.listenTCP(0, wrappedF, interface="127.0.0.1")
self.addCleanup(p.stopListening)
n = p.getHost().port
clientF = LargeBufferReaderClientFactory()
wrappedClientF = FireOnCloseFactory(clientF)
reactor.connectTCP("127.0.0.1", n, wrappedClientF)
d = defer.gatherResults([wrappedF.deferred, wrappedClientF.deferred])
def check(ignored):
self.assertTrue(f.done, "writer didn't finish, it probably died")
self.assertTrue(clientF.len == self.datalen,
"client didn't receive all the data it expected "
"(%d != %d)" % (clientF.len, self.datalen))
self.assertTrue(clientF.done,
"client didn't see connection dropped")
return d.addCallback(check)
示例15: setUp
# 需要导入模块: from twisted.internet import reactor [as 别名]
# 或者: from twisted.internet.reactor import listenTCP [as 别名]
def setUp(self):
self.db = db.Db()
self.db.rc = TwistedFakeRedis()
yield self.db.startService()
yield self.db.flush()
datalib.db = self.db
site = Site(self.db)
self.protocol = MasterProtocol()
self.protocol.factory = self
self.port = reactor.listenTCP(0, site, interface="127.0.0.1")
self.client = client.Agent(reactor)
self.url_prefix = 'http://localhost:{0}{1}/'.format(
self.port.getHost().port, site.prefix)
self.now = int(reactor.seconds())
self.check = TriggersCheck(self.db)