Communication interprocessus en Python : exploration des options de communication bidirectionnelle
La communication interprocessus est cruciale pour permettre les interactions entre des environnements d'exécution Python distincts. Diverses approches ont été tentées, notamment :
Le multitraitement à la rescousse
La communauté Python propose une solution élégante via la bibliothèque multitraitement. Il habilite les processus avec des écouteurs et des clients construits sur des sockets, facilitant l'échange d'objets Python arbitraires.
Implémentation côté serveur :
<code class="python">from multiprocessing.connection import Listener # Define the server address address = ('localhost', 6000) # Create a listener with a secret password for authentication listener = Listener(address, authkey=b'secret password') # Accept incoming connections conn = listener.accept() print('Connection accepted from', listener.last_accepted) # Process incoming messages while True: msg = conn.recv() # Handle the message if msg == 'close': # End the communication conn.close() break listener.close()</code>
Client- côté Implémentation :
<code class="python">from multiprocessing.connection import Client # Specify the server address address = ('localhost', 6000) # Connect to the server using the secret password conn = Client(address, authkey=b'secret password') # Send commands to the server conn.send('close') # Send arbitrary objects as well # conn.send(['a', 2.5, None, int, sum]) # Close the connection conn.close()</code>
En utilisant cette solution, vous pouvez établir sans effort une communication interprocessus robuste et efficace en Python, répondant ainsi à vos exigences en matière de transmission de messages et de communication bidirectionnelle entre des processus distincts.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!