IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

WebDev Discussion :

Bug pour afficher un message d'une socket


Sujet :

WebDev

  1. #1
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 469
    Points : 121
    Points
    121
    Par défaut Bug pour afficher un message d'une socket
    Bonjour à tous !

    Je bloque sur un nouveau problème :

    Sur une application WebDev, je réceptionne des info sur une socket UDP dont voici le code tout simple d'écoute :
    C'est une procédure appelée en Thread.


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    PROCÉDURE Socket_Reception()
     
    BOUCLE
     
    	sMonMessage est une chaîne = SocketLit("Client",Faux,200)
     
    	SI sMonMessage <> "" ALORS
    	    Trace(sMonMessage)
    	    ExécuteThreadPrincipal(Affiche,sMonMessage)		
    	FIN
     
    FIN
    Le code fonctionne très bien, sauf qu'il m'est impossible d'afficher le message reçu ?? !!
    Mais la trace fonctionne, je vois le message !!

    C'est plutôt la fonction Affiche qui me pose problème : (j'utilise cette fonction car justement je dois accéder à un champs... et on peut pas depuis un Thread...)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    PROCÉDURE Affiche(sMonMessage est une chaîne)
     
    ListeAjoute(LISTE_Rx,sMonMessage)
    On peut difficilement faire plus simple ??!!!

    Mais rien ne se passe, aucun message n'est ajouté dans la liste ??

    Quelqu'un aurait une idée ???

    Merci d'avance !!

  2. #2
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    As-tu essayé de mettre ton trace() à la place de ton ListeAjoute() ?
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  3. #3
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 469
    Points : 121
    Points
    121
    Par défaut
    oui oui mais il n’exécute même pas la fonction «*affiche*» !

    je sais pas ce qu’il se passe, ce doit être le ExecuteThreadPrincipal qui bloque ? !

  4. #4
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 469
    Points : 121
    Points
    121
    Par défaut
    Bon il est clair que c’est le ThreadExecutePrincipale qui me bloque carrément le Thread en cours...

    j’ai essayé de m’en passer en modifiant directement l’IHM mais marche pas, j’ai une alerte.

    J’ai essayé de prendre un autre type de champs, idem...

    J’ai essayé de passer par une Variable globale, mais change rien, si je peux afficher la trame reçue sur la socket dans l’IHM, suis obligé de passer par cette fonction...

    c’est très bloquant pour la suite du projet ça !

    n’y a t il pas moyen de faire autrement ?

    merci à vous !

  5. #5
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Il y a une solution à laquelle je pense, mais ça ne me plait pas : Une procédure qui lance une boucle genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    BOUCLE
      si 1=0 alors sortir // histoire de ne pas avoir de warning
      si MaVarGlobale <> "" alors 
         trace(MaVarGlobale)
         MaVarGlobale = ""
         Multitâche(-1)
         temporisation(100)
      fin
    FIN
    C'est pourri, je trouve...

    Essaye de contacter le ST pour qu'ils te donnent des pistes.
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  6. #6
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 469
    Points : 121
    Points
    121
    Par défaut
    salut,

    mouai en effet ça pourrait être une piste, je passerai pas par un thread...

    après si ça marche... pourquoi pas...

    A tester, je te dirais !

    J’ai posté également sur le forum PC-SOFT, on verra...

  7. #7
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 469
    Points : 121
    Points
    121
    Par défaut
    peut-être avec les taches parallèles ?!

  8. #8
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 469
    Points : 121
    Points
    121
    Par défaut
    Et bien non,

    Les tâches parallèles se comportent exactement comme des Thread.

    Pour ton idée @frenchsting, marche pas non plus, les temporisation sont interdite en Webdev.

  9. #9
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    Tu peux virer la tempo si multitâche() est autorisé

    Tu augmentes alors la durée : multitâche(-100).
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

  10. #10
    Membre régulier
    Inscrit en
    Mars 2010
    Messages
    469
    Détails du profil
    Informations forums :
    Inscription : Mars 2010
    Messages : 469
    Points : 121
    Points
    121
    Par défaut
    alors écoute j'ai réussi à faire quelque chose avec les WebSocket.

    Mais alors c'est pas simple...

    Faut que je me fasse la main et voir si je peux faire tout ce que je souhaite...

    Je posterai la solution si tout est ok...

    Le ST m'a répondu (très rapidement, merci à eux !!) en disant clairement que le ExecuteThrteadPrincipal fonctionne sur le serveur par sur le navigateur.

    La solution qu'ils me proposent semble être une grosse usine à gaz...

    Entre temps j'ai vu les websocket... donc... à suivre...

  11. #11
    Expert éminent
    Avatar de frenchsting
    Homme Profil pro
    multitâches-multifonctions
    Inscrit en
    Juin 2003
    Messages
    5 202
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations professionnelles :
    Activité : multitâches-multifonctions
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2003
    Messages : 5 202
    Points : 9 190
    Points
    9 190
    Par défaut
    +1 pour le retour

    Bon courage
    Commencez toujours appuyer sur la touche F1 et puis n'hésitez à passer par un moteur de recherche...
    Le forum est fait pour répondre aux questions : pas la peine de me les envoyer par MP. Merci.

    Sur internet, tout est vrai ! Honoré de Balzac
    Make it real not fantasy... Herman Rarebell

Discussions similaires

  1. Réponses: 0
    Dernier message: 15/03/2019, 08h44
  2. Affiche d'un message pour afficher le résultat d'une commande
    Par celcy dans le forum VB 6 et antérieur
    Réponses: 1
    Dernier message: 26/01/2007, 19h59
  3. Réponses: 18
    Dernier message: 12/06/2006, 09h39
  4. Réponses: 5
    Dernier message: 07/06/2006, 12h11
  5. [C#] Fenêtre pour afficher un message d'erreur
    Par radicalrider dans le forum ASP.NET
    Réponses: 18
    Dernier message: 17/08/2005, 11h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo