我正在尝试编写代理服务器来完成一些事情:
immediately
接收数据发送回客户端。在node.js
我可以使用server.pipe(client)
执行#4。扭曲中有类似的技巧吗?
我有什么:
class Player(protocol.Protocol):
def __init__(self):
self.server_connection = reactor.connectTCP('192.168.254.101', 1000, GateFactory())
...
class Gate(protocol.Protocol):
def dataReceived(self, recd):
print recd
...
class GateFactory(protocol.ClientFactory):
def buildProtocol(self):
return Gate()
...
class PlayerFactory(protocol.Factory):
def __init__(self):
self.players = {}
def buildProtocol(self, addr):
return Player(self.players)
...
reactor.listenTCP(1000, PlayerFactory())
我通过执行以下操作将数据转发到服务器:
self.gate_connection.transport.write(packet)
但是如何将响应转发给客户端:
class Gate(protocol.Protocol):
def dataReceived(self, recd):
print recd
答案 0 :(得分:1)
构建GateFactory
时,您需要将self
(Player
实例)的引用传递给GateFactory
然后传递给Gate
buildProtocol
实例在connectTCP
中创建它们时。
(另外,请考虑直接使用HostnameEndpoint
而不是{{1}}。)