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 :

Erreur de segmentation dans une application RPC (Remote Procedure Call)


Sujet :

Réseau C

  1. #1
    Nouveau membre du Club
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    36
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 36
    Points : 27
    Points
    27
    Par défaut Erreur de segmentation dans une application RPC (Remote Procedure Call)
    Bonjour,

    Je développe une application client-serveur simulant la gestion d'un compte bancaire. J'utilise RPC (Remote Procedure Call). Après avoir lancé mes programmes client et serveur sur deux machines, je reçois tout le temps un message:
    Segmentation fault (core dumped)
    Afin d'apporter plus de précision voici la partie de mon code qui, lorsque je l'ajoute, provoque cette erreur de segmentation:

    Côté client: (ce code fait appel au serveur pour récupérer les informations d'un compte 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
    26
    27
    28
     
    Client_account *get_balance(int clnt_id)
    {
    	CLIENT *clnt;
    	Client_account *result_1;
     
     
    #ifndef DEBUG
    	clnt = clnt_create(primary_server, RBSPROG, RBSVER, "netpath");
    	if (clnt == NULL) {
    		clnt_pcreateerror(primary_server);
    		return 0;
    	}
    #endif
     
    	result_1 = get_balance_1(clnt_id,clnt);
     
    	if (result_1 == NULL) {
    		clnt_perror(clnt, "call failed");
     
    #ifndef DEBUG
    	clnt_destroy(clnt);
    #endif
    	return 0;
    	}
    	clnt_destroy(clnt);
    	return result_1;
    }
    Côté 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
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
     
    Client_account *get_balance_1_svc(clnt_id, rqstp)
    	int clnt_id;
    	struct svc_req *rqstp;
    {
    	int max_data = 0;
    	static Client_account  account;
     
    	FILE *fp;
    	fp = fopen(DB_FILE,"rb");
    	memset(&account,0,sizeof(Client_account));
    	if (clnt_id <= 0)
    	{
    		return NULL;
    	}
     
    	fseek(fp,0,SEEK_END);
    	max_data = ftell(fp)/sizeof(Client_account);
     
    	/*if (clnt_id > max_data)
    	{
    		fclose(fp);
    		return NULL;
    	}*/
    	fseek(fp,(clnt_id-1)*sizeof(Client_account),SEEK_SET);
    	/*if (clnt_id <= max_data)*/
    	{
    		fread(&account,sizeof(Client_account),1,fp);
    	}
    	fclose(fp);
    	return (&account);
     
    }
    Je conçois qu'il soit difficile de m'aider, n'ayant que des "morceaux" de mon code, mais si quelqu'un a une idée pour m'aider, je lui en serait vraiment reconnaissant car je bloque sur cette erreur depuis plusieurs heures

    Merci beaucoup

  2. #2
    Expert éminent sénior

    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    10 610
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 10 610
    Points : 17 916
    Points
    17 916
    Billets dans le blog
    2
    Par défaut
    plusieurs erreurs possibles :

    • non-test de savoir si le fichier a été ouvert
    • non-test de savoir si le fread a réussi
    • renvoyer l'adresse d'une variable locale, même static ?? mauvaise programmation..

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

Discussions similaires

  1. ERREUR HTTP 404 Dans Une Application Test du modele MVC
    Par yassine_3 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 21/07/2010, 11h35
  2. Erreur de compilation dans une application .net
    Par etincelle01 dans le forum ASP.NET
    Réponses: 1
    Dernier message: 21/04/2010, 07h36
  3. RPC (Remote procedure call)
    Par Hematome dans le forum Adaptive Server Enterprise
    Réponses: 3
    Dernier message: 28/10/2008, 17h58
  4. L'utilisation des RPC(Remote Procedure Call)
    Par red_devil617 dans le forum Plateformes (Java EE, Jakarta EE, Spring) et Serveurs
    Réponses: 1
    Dernier message: 23/02/2008, 00h30
  5. Réponses: 7
    Dernier message: 01/06/2005, 11h48

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