我如何使用asyncore与Python 3中的多处理IPC模块



我试图利用multiprocessing模块的客户端/服务器架构来促进我的Python脚本之间的通信。我希望能够实现一个独立的连接侦听器,除了我的主事件循环,使用asyncore。我该怎么做呢?

虽然没有关于如何这样做的外部文档,但我尝试使用multiprocessing.Listener的侦听器套接字构建一个基本的asyncore.dispatcher:

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

我认为你正在寻找的方法是handle_accept,而不是handle_accepted。

相关内容

  • 没有找到相关文章

最新更新