0

私はPythonの初心者です。これが私が直面している問題です。p2p DHT を実装しようとしています。

シナリオは次のとおりです。

プログラムだけがあり、7つの異なるWindows(ターミナル)で同じプログラムを実行します。私が実行している 7 つのインスタンスはすべて、7 つの異なるソケット番号を持ち、7 つのサーバーが作成されています。

この時点ですべての端末 (サーバー) はキーボード入力を待っています. そして, 私は端末の 1 つを選択し, 1 つの端末に入力しました. しかし, 残りのすべての端末は, キーボードの割り込み (入力) を待っています (当然です).

ここで、選択した端末はピア ID (他の端末/サーバーのソケット ポート番号) を知っているので、他のピア (端末) にメッセージを送信したいのですが、問題は、彼らがまだキーボード割り込みを待っていることです!

これを解決するにはどうすればよいですか? 基本的に、端末の1つにキーボード入力が入力された場合、残りのすべての端末がキーボード入力の待機を停止するようにします(注:残りのすべてのソケットポートがあります)

UDP接続です

4

2 に答える 2

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 に答える
0

これらすべてのサーバーが相互に対話する必要があります (これらすべてを個別のプログラムにするのには十分な理由があると思います)。そのためには、各プロセス間にソケットまたはプロセス間通信が必要です。

これをより確実に実装するには、 ZeroMQまたはRabbitMQを確認してください。

P2P プロトコルの実装は必ずしも簡単ではないことに注意してください。

于 2013-10-22T04:41:22.693 に答える