我是扭曲框架的新手。
我知道有很多回调函数会自动触发
当连接建立或丢失时。
但我不知道如何在没有这些回调的情况下发送数据。
例如,我想放一个方法custom_write()
用于发送数据。
def custom_write(self,data):
self.transport.write(
data)
并触发我的函数main():
method.
def main():
try:
p_red("I'm Client")
f = EchoFactory()
reactor.connectTCP("localhost",
8000,
f)
by the reactor.custom_write("HAHAHA")
如果我在不同的端口创建多个反应器绑定会怎样?
Eg: localhost:1234, localhsot:5678
并将不同的两条消息发送到 2 个连接。
Eg: "Thanks" to port 1234
, Bye~ to port 5678
任何信息都可以给我。
Thanks
class EchoClient(protocol.Protocol):
def connectionMade(self):
self.transport.write(
"I'm cli")
def custom_write(self,data):
self.transport.write(
data)
def dataReceived(self, data):
print "Server said:", data
self.transport.loseConnection()
pass
def connectionLost(self, reason):
print("[{0}] Lose connection...".format(
self.__class__.__name__)
)
pass
class EchoFactory(protocol.ClientFactory):
protocol = EchoClient
"""docstring for EchoFactory"""
def clientConnectionFailed(self,
connector,
reason):
print "[{0}] Connection failed - goodbye".format(
self.__class__.__name__)
reactor.stop()
def clientConnectionLost(self,
connector,
reason):
print "[{0}] Connection lost - goodbye".format(
self.__class__.__name__)
reactor.stop()
def main():
try:
p_red("I'm Client")
f = EchoFactory()
reactor.connectTCP("localhost",
8000,
f)
try:
reactor.run()
except BaseException as e:
traceback.print_exc(file=sys.stdout)
raise e
pass
except BaseException as e:
traceback.print_exc(file=sys.stdout)
raise e
pass