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

Réseau C Discussion :

Contrôler les données envoyées


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 21
    Par défaut Contrôler les données envoyées
    Bonjour tout le monde j'ai crée un petit projet pour ma fac que je doit rendre ce soir.
    Il fallait réaliser un programme de mise aux encheres en réseau (donc socket et tcp), je peut proposer des objets a vendre, encherir afficher les objets a vendre et afficher les objets vendus mais je me suis rendu compte que lorsque que j'affiche les objets (a vendre ou vendus) par la suite mes signaux ne sont plus interceptés correctement je m'explique:
    Par exemple lorsque je veux encherir sur un objet le serveur teste si l'objet existe, si cest le cas alors j'encherit puis j'envoit 1 au programme client pour afficher sur le terminal du client que l'enchere a été prise en compte.
    Sinon j'envois 0 et le programme client affiche alors qu'aucun objet de ce nom n'éxiste et qu'il est impossible d'encherir.

    Or lorsque je fait appel a mes fonctions afficher, si je veux ensuite encherir sur un objet qui existe l'enchere a bien lieu et les mofifications dans le fichier texte sont effectuées en revanche le programme client m'affiche que l'objet n'existe pas.

    Je pense que le soucis vient de mes fonctions afficher ou je ne gere pas la quantité de données transferées et ca doit provoquer des soucis dans le buffer...
    Je sollicite donc votre aide car je n'ai aucune idée pour controller ceci.

    code de la partie serveur:
    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
     
    entre= fopen("objets_a_vendre.txt","r");
         				if (!entre){
            			printf("\nImpossible d'ouvrir le fichier.");
            			exit(-1);
            			}
    				cpt = 0;
         				while(fgets(ligne, sizeof ligne, entre)){
    				cpt+=1;
         				}
    				send(in, &cpt, sizeof(int), 0);
    				fseek(entre,0,SEEK_SET);
    				fin = 0;
    				for(fin;fin<cpt;fin++){
    				fgets(ligne, sizeof ligne, entre);
    				strcpy(SM.ligne[fin],ligne);
    				}
    				error = send(in, &SM, sizeof(ser_msg), 0);
         				fclose(entre);
         				entre = NULL;
    				printf("\nTransfert du fichier terminé.\n");
    code de la partie client
    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
     
    send(in, &choix, sizeof(int),0);
    				entree = fopen("OAV_client.txt","w");
     
         				if (!entree){
     
                                   			printf("\nImpossible d'ouvrir le fichier.");
     
                                   			exit(-1);
     
                                   	}
     
         				fseek(entree,0,SEEK_END);
     
         				fseek(entree,0,SEEK_CUR);
    				recv(in, &cpt, sizeof(int),0);
    				error = recv(in, &SM, sizeof(ser_msg), 0);
    				if(error <= 0) printf("Erreur!!!! recu : %d\n", error);
    				for(i = 0;i<cpt;i++){
    					fprintf(entree,"%s",SM.ligne[i]);
    				}
    				fclose(entree);
     
         				entree = NULL;
    				ObjetAVendre();
    Sachant que la structure de donnée SM est definie comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    typedef struct {
    char ligne[256][256];
    }ser_msg;

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 21
    Par défaut
    J'essaye depuis tout a l'heure de réecrire ma fonction pour transferer mon fichier et je me suis inspiré d'un post sur le forum : http://www.developpez.net/forums/sho...nsfert+fichier

    le soucis c'est que lorsque je lance mon programme j'ai ce message qui apparait :
    fseek() : Invalid argument

    une idée dou cela peut venir?

Discussions similaires

  1. Récupérer les données envoyées par une tablette graphique
    Par greg08 dans le forum Débuter avec Java
    Réponses: 3
    Dernier message: 02/06/2010, 06h04
  2. Savoir si les données envoyées sur USB ont été lu ?
    Par echecetmat dans le forum Débuter
    Réponses: 0
    Dernier message: 20/11/2008, 15h52
  3. Réponses: 1
    Dernier message: 07/07/2008, 12h47
  4. TWebBrowser : Intercepter les données envoyées
    Par Bruno13 dans le forum Delphi
    Réponses: 3
    Dernier message: 02/06/2006, 19h35

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