欢迎您访问365答案网,请分享给你的朋友!
生活常识 学习资料

Python多进程多线程含socketunix

时间:2023-05-16
这里写自定义目录标题

变量名什么的不要在意,谢谢。
有一个问题子进程中的线程为啥要再import socket一次,不加就运行不起来?哪位知道解答一下呗^^

from multiprocessing import Processimport socketimport osimport timeimport threadingdef start(): i=0 mainT=threading.Thread(target=udpUS,args=('main','recv')) mainT.start() while i<2: pname='p'+str(i) procadd(pname) i=i+1 def processadd(name): p=Process(target=pcode,args=(name,'send')) p.start()def pcode(name,role): pT=threading.Thread(target=udpUS,args=(name,role)) pT.start() #进程执行的其他代码咯def udpUS(sign,role): udppath='/tmp/'+sign+'_sock.sock' print(sign) import socket#莫名其妙,非要我再import一次socket sock=socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM) #sock.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR, 1)#抄的 if os.path.exists(udppath): os.unlink(udppath) sock.bind(udppath) if role=='send': data=('I`m '+sign+' connect!').encode('utf-8') sock.sendto(data,0,'/tmp/main_sock.sock') if role=='recv': while True: data=sock.recv(100) print(data) time.sleep(5) print(sign+' over!')if __name__=='__main__': start()

参考了:
Python基于unix socket的并发技巧
Python_unix domain socket(域套接字)

Copyright © 2016-2020 www.365daan.com All Rights Reserved. 365答案网 版权所有 备案号:

部分内容来自互联网,版权归原作者所有,如有冒犯请联系我们,我们将在三个工作时内妥善处理。