Partage
  • Partager sur Facebook
  • Partager sur Twitter

Enregistrer un subprocess dans une var pdnt thread

Sujet résolu
    17 octobre 2021 à 15:42:58

    Bonjour, j'essai de developper un chat en python avec un pont tcp ngrok, mais le problème est le suivant, pour générer le client j'ai besoin de récupérer l'output de ngrok donc j'utilise 2 threads mais en enregistrant dans une variable le thread je n'ai rien. 

    (En sachant que l'output de ngrok évolue mais je n'ai besoin que du début.)

    Quelqu'un aurait-il une idée ?

    voici le code:

    import os, time, subprocess, socket, threading, time
    import curses
    from curses.textpad import Textbox, rectangle

    ########################################################################################################################

    host = ""
    port = 9991
    BUFFER_SIZE = 1024

    ########################################################################################################################

    ngrok_output = ""

    def launch_ngrok():

    global ngrok_output
    ngrok_output = subprocess.run(f"cd /Users/XXX/Documents/MacBookPro/python/net_project/ && ./ngrok tcp {port} -log stdout -log-format json -log-level debug", shell=True, stdout=subprocess.DEVNULL, stderr=subprocess.STDOUT)


    def launch_socket():
    global ngrok_output
    time.sleep(2)
    with open("generated_client.py", "w") as file:
    file.write(ngrok_output)

    """
    s = socket.socket()
    s.bind((host, port))

    s.listen(5)
    print(f"Waiting connection as {host}:{port} ...")
    client_socket, client_address = s.accept()

    time.sleep(0.5)

    print("\n\n\n\n")
    print(f"{client_address[0]}: {client_address[1]} Connected!")

    while True:
    print(client_socket.recv(1024).decode("utf-8"))
    inputt = input("\nmachines >")

    #client_socket.close()
    #s.close()

    while True:
    print("test")
    inputt = input("\nmachines >")
    """


    launch_ngrok_th = threading.Thread(target=launch_ngrok)
    launch_socket_th = threading.Thread(target=launch_socket)

    launch_ngrok_th.start()
    launch_socket_th.start()
    Merci

    -
    Edité par MaxMlr 17 octobre 2021 à 15:49:51

    • Partager sur Facebook
    • Partager sur Twitter
      17 octobre 2021 à 20:32:34

      Bonjour,

      Merci de colorer votre code à l'aide du bouton Code

      Les forums d'Openclassrooms disposent d'une fonctionnalité permettant de colorer et mettre en forme les codes source afin de les rendre plus lisibles et faciles à manipuler par les intervenants. Pour cela, il faut utiliser le bouton Code de l'éditeur, choisir un des langages proposés et coller votre code dans la zone prévue. Si vous utilisez l'éditeur de messages en mode Markdown, il faut utiliser les balises <pre class="brush: python;">Votre code ici</pre>.

      Merci de modifier votre message d'origine en fonction.

      Liens conseillés

      • Partager sur Facebook
      • Partager sur Twitter

      Enregistrer un subprocess dans une var pdnt thread

      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
      × Attention, ce sujet est très ancien. Le déterrer n'est pas forcément approprié. Nous te conseillons de créer un nouveau sujet pour poser ta question.
      • Editeur
      • Markdown