Partage de variable entre les threads
Résolu/Fermé
TR_2000
Messages postés
21
Date d'inscription
mardi 17 mai 2022
Statut
Membre
Dernière intervention
28 juin 2022
-
1 juin 2022 à 14:45
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 1 juin 2022 à 19:22
Phil_1857 Messages postés 1872 Date d'inscription lundi 23 mars 2020 Statut Membre Dernière intervention 28 février 2024 - 1 juin 2022 à 19:22
A voir également:
- Partage de variable entre les threads
- Partage de photos - Guide
- Partage d'abonnement - Accueil - Services en ligne
- Partage d'écran whatsapp pc - Accueil - Messagerie instantanée
- Album partagé google - Guide
- Partage de position - Guide
2 réponses
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
Modifié le 1 juin 2022 à 16:15
Modifié le 1 juin 2022 à 16:15
Bonjour,
IndentationError: la ligne 19 est indentée de 4 espaces mais tout le reste l'est d'une tabulation
on le voit en faisant un copié/collé de ton code
IndentationError: la ligne 19 est indentée de 4 espaces mais tout le reste l'est d'une tabulation
on le voit en faisant un copié/collé de ton code
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
Ambassadeur
1 550
1 juin 2022 à 14:58
1 juin 2022 à 14:58
bonjour,
Peux-tu montrer comment tu as utilisé "global"?
Peux-tu préciser le langage quand tu utilises les balises de code? https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Peux-tu montrer comment tu as utilisé "global"?
Peux-tu préciser le langage quand tu utilises les balises de code? https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
TR_2000
Messages postés
21
Date d'inscription
mardi 17 mai 2022
Statut
Membre
Dernière intervention
28 juin 2022
1
1 juin 2022 à 15:10
1 juin 2022 à 15:10
Bonjour,
D'accord j'y penserai la prochaine fois pour le code..
J'ai utilisé le terme global dans la fonction listen_udp pour déclarer la variable à l'intérieur mais j'ai eu une erreur "d'intdentation" alors je me suis dit que ça ne devait pas se placer ici.
J'ai essayé un peu partout après, sans succès...
D'accord j'y penserai la prochaine fois pour le code..
J'ai utilisé le terme global dans la fonction listen_udp pour déclarer la variable à l'intérieur mais j'ai eu une erreur "d'intdentation" alors je me suis dit que ça ne devait pas se placer ici.
J'ai essayé un peu partout après, sans succès...
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 550
>
TR_2000
Messages postés
21
Date d'inscription
mardi 17 mai 2022
Statut
Membre
Dernière intervention
28 juin 2022
1 juin 2022 à 15:33
1 juin 2022 à 15:33
Tu n'as donc pas correctement mis global, ce qui explique le comportement observé.
Peux-tu montrer le code avec
Il est préférable de mettre
Peux-tu montrer le code avec
global, et l'erreur obtenue?
Il est préférable de mettre
globaldans chacune des fonctions utilisant la variable.
TR_2000
Messages postés
21
Date d'inscription
mardi 17 mai 2022
Statut
Membre
Dernière intervention
28 juin 2022
1
>
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 juin 2022 à 15:40
1 juin 2022 à 15:40
Voici le code avec la variable global msg_gnuradio dans les 2 fonctions :
et l'erreur est :
python3 server_thread.py
File "server_thread.py", line 19
global msg_gnuradio
^
IndentationError: unindent does not match any outer indentation level
#Ajout des librairies : import socket #pour les sockets import websockets #pour les websockets import asyncio #pour les fonctions asynchrones (qui s'execute dans n'importe quel ordre) import time #pour le sleep() from threading import Thread #Fonction liée au thread UDP def listen_udp(): len_data = 1024 #Création socket UDP s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) #Lier la socket à l'adress IP et le port s.bind(('localhost', 1234)) print("Serveur UDP à l'écoute") global msg_gnuradio while(True): addr = s.recvfrom(len_data) msg_gnuradio = format(addr) # print(msg_gnuradio) time.sleep(1) #Fonction liée au thread WEB async def listen_ws(websocket, path): try: msg_client = await websocket.recv() print("< " + msg_client) i = 0 global msg_gnuradio while True: try: await websocket.send(format(i)+" : "+msg_gnuradio) # print("> datas envoyées") time.sleep(1) i = i+1 except KeyboardInterrupt: print("Exiting program...") finally: await websocket.send("Le serveur n'est pas connecté à GNURadio") def start_loop(loop, server): loop.run_until_complete(server) loop.run_forever() #Lancement Thread UDP udp = Thread(target=listen_udp) #Création thread pour l'UDP udp.start() # start a new event loop new_loop = asyncio.new_event_loop() #Lancement Thread WEB port_websockets = 8000 #port pour les connexions websocket nb_clients = 0 #nombre de clients connecté start_server = websockets.serve(listen_ws, "localhost", port_websockets, loop=new_loop) web = Thread(target=start_loop, args=(new_loop, start_server)) web.start() print("Serveur websocket à l'écoute sur le port " + str(port_websockets)) for i in range(10): print(format(i)+" : " +msg_gnuradio) time.sleep(2)
et l'erreur est :
python3 server_thread.py
File "server_thread.py", line 19
global msg_gnuradio
^
IndentationError: unindent does not match any outer indentation level
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
1 550
>
TR_2000
Messages postés
21
Date d'inscription
mardi 17 mai 2022
Statut
Membre
Dernière intervention
28 juin 2022
1 juin 2022 à 17:03
1 juin 2022 à 17:03
Pourquoi supprimer
msg_gnuradio = "o"?
Phil_1857
Messages postés
1872
Date d'inscription
lundi 23 mars 2020
Statut
Membre
Dernière intervention
28 février 2024
168
>
yg_be
Messages postés
23342
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
21 novembre 2024
Modifié le 1 juin 2022 à 19:23
Modifié le 1 juin 2022 à 19:23
En tout cas, la ligne 19 est indentée de 4 espaces mais tout le reste l'est d'une tabulation
on le voit en faisant un copié/collé de ton code
IndentationError: unindent does not match any outer indentation level
on le voit en faisant un copié/collé de ton code
IndentationError: unindent does not match any outer indentation level