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

C++ Discussion :

Amélioration vitesse execution programme reseau


Sujet :

C++

  1. #1
    Membre du Club
    Homme Profil pro
    Developpeur
    Inscrit en
    Mars 2012
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Developpeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 146
    Points : 52
    Points
    52
    Par défaut Amélioration vitesse execution programme reseau
    Bonjour a tous,

    Voila je réalise actuellement un programme de scrutation réseau.

    Le programme ping chaque adresse d'une plage reseau (en ICMP), puis si l'adresse repond au ping, je crée un objet "Poste" qui a l'aide de ces méthodes, récupere le nom NetBios et l'adresse Mac.

    Le problème est que la durée d'une scrutation pour environ 100Adresses qui repondent est de plus ou moin 10min.

    Etant novice dans la programmation, j'aimerais connaitre les possibilités d'améliorer ce temps d'execution. ( rajouter des time-out, ou alors modifier complètement la structure du programme ...)

    Voila merci a tous

  2. #2
    Membre éclairé
    Avatar de Ekleog
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2012
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2012
    Messages : 448
    Points : 879
    Points
    879
    Par défaut
    Le plus simple serait de faire tourner chaque adresse dans un thread particulier.
    Après, pour optimiser les performances, il est possible de créer un pool de threads qui va traiter les IP, mais ce ne sera utile que si tu as vraiment beaucoup d'IP à tester.

    En gros, l'idée (pseudo-code) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Avant :
    for (addr in addr_list)
       analyser_addresse(addr);
    // Après
    for (addr in addr_list)
       lancer_thread(analyser_addresse(addr));
    Tu peux te renseigner sur std::thread (c++11) ou boost::thread, pour plus de détails techniques.

  3. #3
    Membre éclairé Avatar de srvremi
    Homme Profil pro
    Directeur d'école d'ingénieurs
    Inscrit en
    Mars 2002
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Directeur d'école d'ingénieurs
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 554
    Points : 656
    Points
    656
    Par défaut
    Plusieurs exécutions simultanées je suis d'accord. Mais tu peux te contenter de forks je pense, pas obligatoire de passer par des thread à mon avis.

    @+
    Rémi

  4. #4
    Membre du Club
    Homme Profil pro
    Developpeur
    Inscrit en
    Mars 2012
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Developpeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Merci a vous pour ces réponses.

    J'ai oublier de préciser que je suis sous Windows, et avec C++Builder 6.

    J'avais déja regarder un peu les threads mais je ne connais pas les fork(), pourrait tu m'en dire plus stp

  5. #5
    Membre expert
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    1 415
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Mars 2007
    Messages : 1 415
    Points : 3 156
    Points
    3 156
    Par défaut
    Citation Envoyé par atum25 Voir le message
    Merci a vous pour ces réponses.

    J'ai oublier de préciser que je suis sous Windows, et avec C++Builder 6.

    J'avais déja regarder un peu les threads mais je ne connais pas les fork(), pourrait tu m'en dire plus stp
    fork() crée un nouveau processus à la place d'un nouveau thread. Les processus peuvent communiquer entre eux via des pipes. Je ne vois pas ce que ça apporte par rapport au multi-threading (dans notre cas).
    Find me on github

  6. #6
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    fork() est une fonction de la norme POSIX (et présente sous linux, par exemple) pour créer un processus fils identique au processus courant.
    Sous Windows, utilises CreateThread.
    Process ou Thread, à mon avis la difficulté reste la même: il faut à la fois faire attention à éviter les interférences entre les traitements parallèles et pourtant réussir à collecter les données de manière cohérente. Il sera peut-être bien plus simple de coordonner des threads que des processus indépendants.
    Ton problème étant principalement le temps d'attente réseau, je pense que tu gagneras effectivement à créer des thread, pour éviter d'ajouter les temps d'attente réseau les uns aux autres (si n threads attendent la réponse réseau en //, tant que tu ne satures pas le réseau tu divises approximativement par n le temps consacré à attendre la réponse).

  7. #7
    Membre éclairé Avatar de srvremi
    Homme Profil pro
    Directeur d'école d'ingénieurs
    Inscrit en
    Mars 2002
    Messages
    554
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Directeur d'école d'ingénieurs
    Secteur : Enseignement

    Informations forums :
    Inscription : Mars 2002
    Messages : 554
    Points : 656
    Points
    656
    Par défaut
    Sous Linux les forks sont plus simples à mettre en place que des threads. Mais si tu es sous Windows je pense effectivement que tu en baveras moins avec des threads.

    @+
    Rémi

  8. #8
    Membre du Club
    Homme Profil pro
    Developpeur
    Inscrit en
    Mars 2012
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Developpeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Donc après vos conseil, j'ai choisi d'utiliser la fonction CreateThread et donc de crée un thread par adresse ip qui repond.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    if (Ping(ansAddIp)==1)
                            {
                                SECURITY_ATTRIBUTES attr;  
                                HANDLE th = 0;
     
                                //PosteDeTravail Poste(ansAddip,ansAddIpFin,i);
                                th = CreateThread(&attr,0,&MyThread,i, 0,NULL);
                                j++;
                            }
    Pour essayer, j'éssai de crée un thread qui m'affiche un nombre dans mon Memo.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    unsigned long WINAPI  MyThread(LPVOID entier)
    {
            int nbr = (int)entier;
            Form1->Memo1->Lines->Add(nbr);
             ExitThread(0);  
    }
    Je n'arrive pas a passer de paramètre en effet, j'aimerais crée un thread et dans mon thread crée un objet PosteDeTravail.

    Avant je passais divers paramètres a mon constructeur de l'objet ( comme l'adresse Ip ...)

    Comment puis-je passer des paramètre a mon thread afin de pouvoir appeler le constructeur de mon objet dans mon thread.
    Merci

  9. #9
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    Citation Envoyé par Ekleog Voir le message
    Le plus simple serait de faire tourner chaque adresse dans un thread particulier.
    Après, pour optimiser les performances, il est possible de créer un pool de threads qui va traiter les IP, mais ce ne sera utile que si tu as vraiment beaucoup d'IP à tester.

    En gros, l'idée (pseudo-code) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    // Avant :
    for (addr in addr_list)
       analyser_addresse(addr);
    // Après
    for (addr in addr_list)
       lancer_thread(analyser_addresse(addr));
    Tu peux te renseigner sur std::thread (c++11) ou boost::thread, pour plus de détails techniques.

    Sans aller jusque là : si l'écho est géré par un trhead, et l'écho reply est géré par un autre thread, alors l'écho n'a pas besoin d'attendre l'écho reply, et les paquets peuvent être envoyés en séquence, sans délai entre deux paquets.

    Citation Envoyé par srvremi Voir le message
    Plusieurs exécutions simultanées je suis d'accord. Mais tu peux te contenter de forks je pense, pas obligatoire de passer par des thread à mon avis.

    @+
    Rémi
    Il y a une petite erreur : fork() crée un process fils du process appelant ; les threads sont nécessairement plus légers que les process, quel que soit l'OS.

    je dirais donc : tu peux te contenter de thread, pas obligé par passer par des fork.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  10. #10
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Je ne suis pas un grand connaisseur de l'API win32, mais d'après ça:
    http://msdn.microsoft.com/en-us/libr...=vs.85%29.aspx
    La quatrième paramètre, juste après l'adresse de la fonction à appeler, est un pointeur typé void qui sera passé à la thread.
    Imaginons que ce pointeur soit par exemple l'adresse de ton objet nouvellement créé . Tu pourrais alors faire comme avant en utilisant ta référence d'objet.

  11. #11
    Membre du Club
    Homme Profil pro
    Developpeur
    Inscrit en
    Mars 2012
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Developpeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Sans aller jusque là : si l'écho est géré par un trhead, et l'écho reply est géré par un autre thread, alors l'écho n'a pas besoin d'attendre l'écho reply, et les paquets peuvent être envoyés en séquence, sans délai entre deux paquets.
    Je ne comprend pas ce que tu veux dire, peut tu détailler plus stp,
    Qu'appelle tu "l'echo" ? "Les paquets" ?
    merci

  12. #12
    Membre du Club
    Homme Profil pro
    Developpeur
    Inscrit en
    Mars 2012
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Developpeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    La quatrième paramètre, juste après l'adresse de la fonction à appeler, est un pointeur typé void qui sera passé à la thread.
    Imaginons que ce pointeur soit par exemple l'adresse de ton objet nouvellement créé . Tu pourrais alors faire comme avant en utilisant ta référence d'objet.
    il faut donc que je crée un nouvelle objet avant de crée mon thread c'est sa ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
          PosteDeTravail Poste(ansAddip,ansAddIpFin,i);
                    th = CreateThread(&attr,0,&MyThread,&Poste, 0,NULL);
    Comme sa a peu près ?

  13. #13
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    PosteDeTravail Poste(ansAddip,ansAddIpFin,i);
    th = CreateThread(&attr,0,&MyThread,&Poste, 0,NULL);
    Oui. Après ta fonction MyThread peut récupérer l'instance de Poste dans la thread (donc en mode parallèle) et travailler dessus, c-à-d lancer le ping et traiter la réponse pour un poste.

    @Emmanuel: c'est un producteur/consommateur? Mais comment ferais-tu pour gérer l'incertitude sur l'ordre d'arrivée des réponses côté consommateur?

  14. #14
    Membre du Club
    Homme Profil pro
    Developpeur
    Inscrit en
    Mars 2012
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Developpeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Enfaite, je voulais ne crée le thread et l'objet que pour une adresse qui repond.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    for(i=IpDeb;i<=IpFin;i++)
                    {
                            ansIp14 =i;
                            ansAddIp = ansIp11+"."+ansIp12+"."+ansIp13+"."+ansIp14;
                            if (Ping(ansAddIp)==1)
                            {
                                SECURITY_ATTRIBUTES attr;  
                                HANDLE th = 0;
     
                                PosteDeTravail Poste(ansAddIp);
                                th = CreateThread(&attr,0,&MyThread,&Poste, 0,NULL);
                                j++;
                            }
                            ansAddIp=("");
                    }
    Si une adresse repond alors je crée un objet et un thread.

    Après ta fonction MyThread peut récupérer l'instance de Poste dans la thread (donc en mode parallèle) et travailler dessus

    Après je peux appeller les méthode de mon objet directement dans la fonction MyThread ?

  15. #15
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Citation Envoyé par atum25 Voir le message
    Enfaite, je voulais ne crée le thread et l'objet que pour une adresse qui repond.
    C'est tout à fait possible: le pointeur peut être ce que tu veux, y compris simplement un pointeur vers la chaîne qui décrit ton IP, par exemple.
    Que te disent tes mesures (et j'ignore la réponse, c'est une vraie question): le délai vient du temps de latence du ping ou des traitements en aval (appels réseau pour caractériser le poste détecté). Parce que si le délai vient du ping (ou du moins que le temps de latence du ping a une part non négligeable dans le délai), tu as intérêt à le mettre dans la thread...si c'est le délai des étapes suivantes qui domine, effectivement tu peux ne créer la thread que quand le ping répond.

    EDIT: j'avais perdu de vue certaines infos de ton post initial.
    Quoi qu'il en soit, pour cette adresse qui répond, tu peux créer ton objet poste avec l'IP, le passer à la thread puis permettre à la thread de récupérer la référence de l'objet Poste et de l'activer pour faire la scrutation

  16. #16
    Membre du Club
    Homme Profil pro
    Developpeur
    Inscrit en
    Mars 2012
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Developpeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Le temps de latence viens principalement du traitement en aval. a nombre de poste égale il me faut 2, 3 min pour tous les pingués, alors qu'avec rien que la récupération de l'adresse mac et du nom netbios il me faut au moin 7,8mins.

    pour l'instant je vais laisser le pîng en dehors et ne crée un thread que lorceque l'adresse repond au ping.

    Donc je crée mon objet et je crée mon thread avec comme paramètre mon objet.
    Comment je peux fair pour appeler les différentes méthodes de mon objet dans le thread ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    PosteDeTravail Poste(ansAddIp);
                               th = CreateThread(&attr,0,&MyThread,&Poste, 0,NULL);

  17. #17
    Membre du Club
    Homme Profil pro
    Developpeur
    Inscrit en
    Mars 2012
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Developpeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Avant dans le constructeur de mon objet, j'appelais les différentes méthodes.


    Est ce que je continu comme sa, ou alors je les appelles directements dans la fonction MyThread ?

  18. #18
    Expert confirmé

    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2007
    Messages
    1 895
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Septembre 2007
    Messages : 1 895
    Points : 4 551
    Points
    4 551
    Par défaut
    Citation Envoyé par atum25 Voir le message
    Je ne comprend pas ce que tu veux dire, peut tu détailler plus stp,
    Qu'appelle tu "l'echo" ? "Les paquets" ?
    merci
    Si tu utilises ICMP sans connaitre les termes "echo" et "echo reply", je ne vais pas pouvoir t'aider vraiment

    Si tu fais un ping, tu envoies des paquets de type "echo", et tu reçois des paquets de type "echo reply". C'est aussi simple que ça.

    @Emmanuel: c'est un producteur/consommateur? Mais comment ferais-tu pour gérer l'incertitude sur l'ordre d'arrivée des réponses côté consommateur?
    Non. En envoyant un paquet "echo", tu ne garanti rien sur le fait que la paquet de retour arrive, ou qu'il arrive dans un timeframe donné. Donc inutile de mettre en place un système producteur/consommateur.

    ICMP est un protocole de type datagramme au même niveau que IP, donc il ne travaille pas en mode connecté ; ce qui fait que le thread d'envoi et le thread de réception n'ont rien à partager. Les deux peuvent se trouver dans des process différents, pour ce qui nous intéresse.

    La seule chose à vérifier, c'est que toutes les IP auxquelles ont envoie une requête echo ICMP répondent par un paquet "echo reply". Cette vérification peut être faite une fois un timeout défini atteint - par exemple, 5 secondes après le dernier envoi de paquet "echo".

    Au niveau du code, deux thread prennent en paramètre une référence (pointeur) sur une std::map<ip, état>. Le premier thread parcours de map<>::begin() à map<>::end() pour envoyer un message ICMP "echo" à chaque adresse IP (pour plus de sécurité, il serait bon d'envoyer le message 4 fois ; c'est mieux de le faire en 4 parcours plutôt que d'envoyer le message 4 fois de suite, histoire de laisser un peu de temps entre deux envois du message ICMP "echo" ; certaines machines peuvent ne pas répondre du tout à ce qu'elles considèrent comme du flood). Après le dernier envoi, il attends 5 secondes et envoie une message "suicide toi immediatement" au second thread.

    Le second thread se met en attente ; dès qu'il reçoit un message ICMP "echo reply", il met à 1 l'état correspondant à cette IP (puisque c'est un datagramme, on récupère l'IP en même temps que le message ; cf. man recvfrom ; Winsock2 propose un équivalent, voire la même fonction (par contre, je ne suis pas sûr que Win32 accepte de jouer avec ICMP; il faudra peut-être utiliser la lib winpcap, beaucoup plus puissante)). Dès qu'on lui demande de se suicider, le thread se termine.

    Le programme appelant crée les deux thread, et attends la fin de leur exécution (join). Une fois les deux thread terminés, il parcours de map<>::begin() à map<>::end() pour déterminer quelles sont les adresses IP qui n'ont pas répondu au ping.
    [FAQ des forums][FAQ Développement 2D, 3D et Jeux][Si vous ne savez pas ou vous en êtes...]
    Essayez d'écrire clairement (c'est à dire avec des mots français complets). SMS est votre ennemi.
    Evitez les arguments inutiles - DirectMachin vs. OpenTruc ou G++ vs. Café. C'est dépassé tout ça.
    Et si vous êtes sages, vous aurez peut être vous aussi la chance de passer à la télé. Ou pas.

    Ce site contient un forum d'entraide gratuit. Il ne s'use que si l'on ne s'en sert pas.

  19. #19
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Décembre 2010
    Messages
    734
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Décembre 2010
    Messages : 734
    Points : 1 475
    Points
    1 475
    Par défaut
    Citation Envoyé par atum25 Voir le message
    Avant dans le constructeur de mon objet, j'appelais les différentes méthodes.


    Est ce que je continu comme sa, ou alors je les appelles directements dans la fonction MyThread ?
    Non, surtout pas! Si tu fais ça, tout le boulot sera fait avant de créer la thread et tu n'amélioreras rien!
    • avant de créer la threadconstruction de l'objet poste <=> description de la tâche à effectuer (c-à-d principalement, on dit quel est l'IP de la machine à sonder)
    • dans la thread appel d'une méthode probe() qui fera le boulot dans la partie parallèle.

  20. #20
    Membre du Club
    Homme Profil pro
    Developpeur
    Inscrit en
    Mars 2012
    Messages
    146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Côte d'Or (Bourgogne)

    Informations professionnelles :
    Activité : Developpeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2012
    Messages : 146
    Points : 52
    Points
    52
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     PosteDeTravail Poste(ansAddIp);
                                th = CreateThread(&attr,0,&MyThread,&Poste, 0,NULL);
    Lorceque Crée mon thread, je ne rentre jamais dans la fonction MyThread, est ce normal ?

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 3 123 DernièreDernière

Discussions similaires

  1. Execution programme session fermée
    Par oligig dans le forum Autres Logiciels
    Réponses: 1
    Dernier message: 06/09/2005, 10h24
  2. Execution programme et récupération du code retour
    Par Dr_GonZO dans le forum Langage
    Réponses: 5
    Dernier message: 12/07/2005, 15h20
  3. [Kylix] probleme execution programme
    Par vin's dans le forum EDI
    Réponses: 1
    Dernier message: 31/03/2004, 12h25
  4. Programme reseau en c++
    Par schnito dans le forum Windows
    Réponses: 3
    Dernier message: 14/01/2004, 00h44
  5. programmation reseau - couche 2 du modele osi
    Par sahor dans le forum C++Builder
    Réponses: 3
    Dernier message: 06/11/2002, 18h33

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