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++Builder Discussion :

plantage lors de réception de fihier


Sujet :

C++Builder

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    novembre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2003
    Messages : 9
    Points : 9
    Points
    9
    Par défaut plantage lors de réception de fihier
    bosoir, j'ai un petit souci. j'ai réalisé un prog de transfert de fichier sans utiliser de thread et à la fin de la réception, le programme plante sans raison.
    voici le code de la réception :
    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
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    void __fastcall TReception::Socket_ServeurClientRead(TObject *Sender,
          TCustomWinSocket *Socket)
    {
    if(envoi1 != 1)
            {
            //on recoit la taille
            taillerecue = Socket->ReceiveText();
            barre_etat->Panels->Items[0]->Text = "Taille recue"; //affichage du statut
            //on envoit qu'on a bien recue la taille
            Socket->SendText("taille recue");
            envoi1=1;
            // On la transforme en int
            taille = StrToInt(taillerecue);
            }
    else
            {
            // Tant qu'on est pas arrivé a la taille du fichier on receptionne les données
            while(taille != 0)
                    {
                    memset(buf, 0, sizeof(buf));
                    int n = Socket->ReceiveBuf(buf, sizeof(buf));
                    // On écrit dans le fichier
                    WriteFile(FichierRecu, buf,n, &dwRecu, 0);
                    taille = taille - n;
                    barre_etat->Panels->Items[0]->Text = "Reception en cours"; //affichage du statut
                    }
            // On ferme le fichier
            CloseHandle(FichierRecu);
            }
    barre_etat->Panels->Items[0]->Text = "Transfert terminé"; //affichage du statut        
    }

    merci

  2. #2
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    4 930
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 4 930
    Points : 6 377
    Points
    6 377
    Par défaut
    Salut

    A quel endroit plante-t-il exactement ?
    Que "dit-il" ?

    On manque vraiment de renseignements pour t'aider.
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    novembre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2003
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    en fait, le programme freeze et je ne peux plus rien faire.
    je suis obligé de cliquer sur la croix et faire fin de tache.
    je suppose que le programme plante dès qu'il lis le buffer.

    mais bizarrement, le fichier est bien réceptionné....

  4. #4
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    4 930
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 4 930
    Points : 6 377
    Points
    6 377
    Par défaut
    Salut

    Tu devrais tester ta boucle while, c-a-d écrire quelque chose pour voir si par hasard tu n'aurais pas une boucle avec un n = 0 (tu affiches le nombre de passages par exemple).
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    novembre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2003
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    le problème, c'est que je ne pourrais pas visualiser le résultat car lorsque le prog plante, il devient tout blanc ou bleu....

  6. #6
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    4 930
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 4 930
    Points : 6 377
    Points
    6 377
    Par défaut
    Alors essaye d'écrire dans un fichier
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  7. #7
    Futur Membre du Club
    Profil pro
    Inscrit en
    novembre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2003
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    en fait, c'est ma boucle qui fait planter le logiciel. mais je ne vois pas comment faire autrement.

  8. #8
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    4 930
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 4 930
    Points : 6 377
    Points
    6 377
    Par défaut
    Désolé mais là je ne peux rien faire de plus, n'ayant jamais travaillé sur les sockets !
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    novembre 2003
    Messages
    9
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : novembre 2003
    Messages : 9
    Points : 9
    Points
    9
    Par défaut
    j'ai touvé ma solution.
    j'ai fais un système de condition à respecter à chauqe réception et non plus une boucle et c'est ok.
    merci

  10. #10
    Rédacteur/Modérateur
    Avatar de Trap D
    Profil pro
    Inscrit en
    septembre 2003
    Messages
    4 930
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : septembre 2003
    Messages : 4 930
    Points : 6 377
    Points
    6 377
    Par défaut
    Tant mieux. Pense à mettre [Résolu]
    a+
    "La haine seule fait des choix" - Koan Zen
    "Il ne faut pas être meilleur que les autres, il faut être meilleur que soi." Albert Jacquard
    "Ceux qui savent où ils ont posé leur parapluie ne sont pas alcooliques." - pgibonne.
    Faites du Prolog, ça vous changera les idées !
    Ma page Prolog
    Mes codes sources commentés

    Mon avatar : La Madeleine à la veilleuse de Georges de La Tour

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Système] Plantage lors du login
    Par yvon_huynh dans le forum Langage
    Réponses: 7
    Dernier message: 28/08/2006, 17h27
  2. Réponses: 5
    Dernier message: 26/07/2006, 11h52
  3. Réponses: 6
    Dernier message: 13/04/2006, 16h54
  4. Réponses: 22
    Dernier message: 28/03/2006, 15h59
  5. plantage lors de mon free
    Par salseropom dans le forum C
    Réponses: 16
    Dernier message: 17/02/2006, 19h43

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