2

multiprocessingPython スクリプト間の通信を容易にするために、モジュールのクライアント/サーバー アーキテクチャを利用しようとしています。を使用して、メインのイベント ループとは別に、別の接続リスナーを実装できるようにしたいと考えていますasyncore。これどうやってするの?

その方法に関する外向きのドキュメントはありませんが、次asyncore.dispatcherのリスナーソケットを使用して基本的なものを構築しようとしましたmultiprocessing.Listener:

import asyncore
import socket
from multiprocessing.connection import Listener, Client

class ConnectionListener(asyncore.dispatcher):
    def __init__(self, ln):
        asyncore.dispatcher.__init__(self)
        self.set_socket(ln._listener._socket)
    def handle_accepted(self, sock, addr):
        print("Accepted a client!")

if __name__ == "__main__":
    address = ('localhost', 19378)
    try:
        ln = Listener(address)
        x = ConnectionListener(ln)
        while True:
            asyncore.loop()
    except socket.error:
        c = Client(address)
        print("Client is trying to connect")

サーバーはループしますが、起動することはありませんhandle_accepted

4

1 に答える 1

0

あなたが探しているメソッドは、handle_accepted ではなく、handle_accept だと思います。

于 2013-07-16T22:34:51.203 に答える