0

我是 Python 新手,这是我面临的问题。我正在尝试实现 p2p DHT 。

那么场景如下:

只有程序,我在 7 个不同的 Windows(终端)中运行相同的程序。我运行的所有 7 个实例都有 7 个不同的套接字编号,现在创建了 7 个服务器

此时所有终端(服务器)都在等待键盘输入,我选择在其中一个终端中输入,在一个终端中输入,但其余所有终端仍在等待键盘中断(输入)(很明显)。

现在我选择的终端知道peer id(其他终端/服务器的Socket端口号),所以现在我想向其他peer(终端)发送消息,问题是他们还在等待键盘中断!

我该如何解决这个问题?本质上,如果在其中一个终端输入键盘输入,我希望其余所有终端停止等待键盘输入(注意:我拥有其余的所有套接字端口)

这是一个UDP连接

4

2 回答 2

0

您需要所有这些服务器相互通信(我假设您有充分的理由让所有这些服务器成为单独的程序)。为了做到这一点,每个进程之间需要有一个套接字或进程间通信。

检查ZeroMQRabbitMQ以帮助您更稳健地实现这一点。

请注意,P2P 协议并不容易实现。

于 2013-10-22T04:41:22.693 回答
0

你看过http://docs.python.org/2/library/signal.html吗?在为事件设置处理程序后,您可以向其他服务器实例发送消息。

您可以使用http://docs.python.org/2/library/os.html#os.kill在进程之间发送信号。

于 2013-10-22T04:44:29.263 回答