变量名什么的不要在意,谢谢。
有一个问题子进程中的线程为啥要再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(域套接字)