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 :

erreur d incompatibilite de type et autres


Sujet :

C

  1. #1
    ghostbrain
    Invité(e)
    Par défaut erreur d incompatibilite de type et autres
    Bonjour,
    Pourriez vous m'aider s'il vous plait? Je suis en L2 Informatique et on a un projet noté à faire qui est la creation d'un client et d'un serveur pouvant communiquer entre eux et permettant ainsi de créer une sorte de "Instant messenger" genre msn. le client fonctionne bien le serveur fonctionnait bien jusqu'a ce que je lui ajoute la partie importante du projet: le fait de pouvoir accepter plusieurs clients en meme temps qui pourront communiquer entre eux

    voici les erreurs que j'obtiens:
    Threadserver-tp.c: In function ‘main’:
    Threadserver-tp.c:85:21: error: incompatible types when assigning to type ‘char[256]’ from type ‘char *’
    Threadserver-tp.c: In function ‘readmessage’:
    Threadserver-tp.c:103:19: warning: initialization makes integer from pointer without a cast
    Threadserver-tp.c:107:4: warning: format ‘%s’ expects type ‘char *’, but argument 2 has type ‘int’

    et voila mon code (J'ai du modifier le nom des variable du vrai code car mes enseignants ont la gachette facile en ce qui concerne google et je ne veux qu'ils pensent que je l'ai pompé quelque part. par conséquent il risque d'y avoir certaine erreur de modif de nom de variable, du genre une variable qui vient de nulle part; mais le risque est faible)

    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
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
     
    void *readmessage(void *data);
     
    struct client_connect{
    	int maPetiteSocket;
    	int monPetitMessage;
    	char monPetitBuffer[256];
    };
     
    int main(int argc, char **argv){
     
    	pthread_t threads;
     
    	int maSocketChouchou=socket(AF_INET,SOCK_STREAM,IPPROTO_TCP);
    	char *port=argv[1];
    	int valeurDeRetour=0;
    	char buffer[256]="";
    	struct sockaddr_in addr_serv;
    	int message = 0;
    				.
    				.
    				.
    				.
    				.
    		struct client_connect client;
    		client.maPetiteSocket=socketFille;
    		client.monPetitMessage=message;
    		client.monPetitBuffer=buffer; //ici est la ligne 85
    				.
    				.
    				.
    				.
    				.
    }
     
    void *readmessage(void *data){
    	struct client_connect *args = data;
    	int newSocket=args->maPetiteSocket;
    	int newMssge=args->monPetitMessage;
    	char newBuffer=args->monPetitBuffer;                          // voici la ligne 103
    	while (1){
    	 newMssge= read(newSocket, newBuffer sizeof(newBuffer));
    		if ( newMssge > 0) {
    			printf("%s", newBuffer);                               // et enfin la ligne 107
    			write(newSocket, newBuffer, sizeof(newBuffer));
    		}
    	}
    	close(newSockett);
    }
    merci d'avance à tous amis developpeurs

  2. #2
    Membre éclairé
    Avatar de Elijha
    Homme Profil pro
    Ingénieur développement matériel électronique
    Inscrit en
    Avril 2003
    Messages
    314
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Ingénieur développement matériel électronique
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Avril 2003
    Messages : 314
    Points : 742
    Points
    742
    Par défaut
    Bonsoir,

    A la ligne 85, tu essayes d'attribuer un pointeur (buffer) à un tableau (monPetitBuffer).
    Plusieurs solutions:
    1. Tu modifies le type de ta structure, et monPetitBuffer devient un pointeur de char : 2. Ou tu effectues une copie (Avec strcpy(...) ton buffer doit se terminer par un 0.) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    strcpy(client.monPetitBuffer, buffer) ; 
    // ou bien
    sprintf(client.monPetitBuffer, "%s", buffer) ;
    Idem pour la ligne 103. Tu essayes d'attribuer un pointeur dans un char. Modifie ton type
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    char *newBuffer=args->monPetitBuffer;
    Le warnig ligne 107 disparaitra par la correction ci-dessus.
    - Une réponse vous a été utile ? Remerciez son auteur en cliquant le pouce vert !
    - Travailler dur n'a jamais tué personne, mais pourquoi prendre le risque (Edgar Bergen)

  3. #3
    ghostbrain
    Invité(e)
    Par défaut
    Bonjour,
    Merci Elijha pour ton aide precieuse (1UP ). toutes les erreurs ont disparus. maintenant il n'y à plus qu'à esperer que le serveur fasse ce que j'aimerai qu'il fasse .

    Bonne journée

    [edit] mon serveur marche à la perfection ou presque (il me reste à pofiner deux ou trois truc.). Encore merci.
    Dernière modification par ghostbrain ; 12/11/2011 à 09h33.

Discussions similaires

  1. [A-07] Erreur n°13 : Incompatibilité de type
    Par Leimi dans le forum VBA Access
    Réponses: 2
    Dernier message: 17/03/2009, 11h15
  2. Erreur d'incompatibilité de types
    Par étoile de mer dans le forum Débuter
    Réponses: 27
    Dernier message: 01/06/2008, 17h14
  3. DLookup, Erreur d'incompatibilité de type (13)
    Par athos7776 dans le forum VBA Access
    Réponses: 5
    Dernier message: 08/08/2007, 17h25
  4. Erreur 13 : incompatibilité de type
    Par Donatelli dans le forum Access
    Réponses: 1
    Dernier message: 03/01/2007, 12h19
  5. [VBA-A] ADO - Erreur 13 Incompatibilité de Type
    Par db30 dans le forum VBA Access
    Réponses: 4
    Dernier message: 15/04/2006, 14h30

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