gpt4 book ai didi

python - 如何使用 twisted 手动发送数据

转载 作者:可可西里 更新时间:2023-11-01 02:54:39 24 4
gpt4 key购买 nike

我是扭曲框架的新手。

而且我知道有很多回调函数会自动触发

连接建立或断开时。

但我不知道如何在没有这些回调的情况下发送数据。

例如,我想放置一个方法 custom_write() 来发送数据。

    def custom_write(self,data):
self.transport.write(
data)

并触发我的 main(): 方法中的函数。

def main():
try:
p_red("I'm Client")
f = EchoFactory()
reactor.connectTCP("localhost",
8000,
f)

通过 reactor.custom_write("HAHAHA")

如果我在不同的端口创建多个 react 器绑定(bind)会怎么样。

例如:localhost:1234, localhsot:5678

并将不同的两条消息发送到 2 个连接。

例如:"Thanks"to port 1234 , Bye~ to port 5678

有什么资料可以给我。

谢谢

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

最佳答案

您可以多次调用 connectTCP() 并使用不同的主机、端口。 connectTCP() 立即返回,无需等待全部交换完成。要发送不同的字符串,您可以将它们传递到可以使它们可用于协议(protocol)的工厂。

关于python - 如何使用 twisted 手动发送数据,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20396649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com