1

可能重复:
如何编写一个同时也是客户端的扭曲服务器?

如何创建一个带有扭曲的 tcp 客户端服务器应用程序,服务器也可以在其中发送请求,而不仅仅是回答它们?有点像 p2p 应用程序,但客户端总是启动连接。由于我不知道来自服务器的请求何时会发生,所以我不知道一旦反应器启动我该怎么做。

4

1 回答 1

1

你要问自己的问题是:服务器为什么要发送请求?

大概世界上发生了一些事情会促使服务器发送请求;它不会随意做。即使它是随机的,世界上发生的事情也将是“过去了一些随机的时间”。换句话说,callLater(random(...), doSomething).

当您使用 Twisted 编写程序时,您首先要设置对事件做出反应的方法。然后你运行反应器 - 即“对事件做出反应的东西” - 永远。您可以随时设置新的方式来响应传入的网络事件(reactor.connectTCP、、reactor.listenTCPreactor.callLater或拆除现有的等待事件( protocol.loseConnection、、、port.stopListeningdelayedCall.cancel。您不需要重新启动反应器;事实上,真的,在反应器运行之前你应该做的唯一一件事就是做reactor.callWhenRunning(someFunctionThatListensOrConnects),然后写someFunctionThatListensOrConnects来做你所有的初始设置。一旦反应器已经运行,该设置就会发生,这表明您不需要提前做任何事情;反应堆完全能够在运行时改变其配置。

如果导致服务器向客户端 B 发送事件的事件是客户端 A 向它发送消息的事实,那么常见问题解答会回答您的问题,“我如何在一个连接上进行输入导致在另一个连接上输出?

于 2013-01-19T06:58:52.610 回答