python实现跨进程(跨py文件)通信
生活随笔
收集整理的這篇文章主要介紹了
python实现跨进程(跨py文件)通信
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
文章目錄
- 前言
- 一、server端
- 二、client端
- 三、運行效果
- 總結
前言
項目中總會遇到數據需要跨進程通信的問題,今天就給大家帶來一套簡單的跨進程通信代碼。代碼分為服務端與客戶端兩部分。
一、server端
import multiprocessing import timedef do_socket(conn, addr, ):try:while True:if conn.poll(1) == False:time.sleep(0.5)continuedata = conn.recv() # 等待接受數據conn.send('sucess')# ***********************# 要執行的程序寫在這里# ***********************print(data)except Exception as e:print('Socket Error', e)finally:try:conn.close()print('Connection close.', addr)except:print('close except')def run_server(host, port):from multiprocessing.connection import Listenerserver_sock = Listener((host, port))print("Sever running...", host, port)pool = multiprocessing.Pool(10)while True:# 接受一個新連接:conn = server_sock.accept()addr = server_sock.last_acceptedprint('Accept new connection', addr)# 創建進程來處理TCP連接:pool.apply_async(func=do_socket, args=(conn, addr,))if __name__ == '__main__':server_host = '127.0.0.1'server_port = 8000run_server(server_host, server_port)二、client端
import timefrom multiprocessing.connection import Clientclient = Client(('127.0.0.1', 8000))while True:data = 'send data'client.send(data)data = client.recv() # 等待接受數據print(data)time.sleep(1)這里只是給了client端的示例代碼,實際通信的數據類型可以是多樣的(字符串、數字、圖片等)
三、運行效果
先運行server端,再運行client端。
server端
client端
總結
本文簡單給大家提供了一套簡單封裝的跨進程通信代碼,方便大家快速上手實現跨進程通信,有需要的伙伴可以根據自己的需求調整代碼。
如果閱讀本文對你有用,歡迎一鍵三連呀!!!
2022年3月1日14:26:42
總結
以上是生活随笔為你收集整理的python实现跨进程(跨py文件)通信的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 留住核心人才
- 下一篇: python pynput 按两下耳机播