Convertir tableau int en const char* et inverse [Résolu]

Signaler
Messages postés
26
Date d'inscription
samedi 29 novembre 2008
Statut
Membre
Dernière intervention
13 juin 2009
-
NitRic
Messages postés
402
Date d'inscription
mardi 1 mai 2001
Statut
Membre
Dernière intervention
15 août 2011
-
Bonjour,

J'ai écrit une application client-serveur. Ils se communiquent par des sockets TCP. Pour envoyer au serveur un tableau d'entier, j'utilise:

int config[4];
...
send(socket, (char*) config,sizeof(config),0);

car send() n'accepte qu'une chaine const char*

Maintenant, pour que le serveur peut retrouver le tableau d'entier au début de la chaine reçu, que je dois faire?

char config[4];
recv(socket,config,4,0);
//TO DO: utiliser les valeur du tableau

Merci!

3 réponses

Messages postés
1107
Date d'inscription
mercredi 15 juin 2011
Statut
Membre
Dernière intervention
10 juillet 2018
4
Pourquoi tu ne fais pas comme dand send ? Ca devrait marcher, non ?
int config[4];
recv(socket,(char *)config,sizeof(config),0);
Messages postés
26
Date d'inscription
samedi 29 novembre 2008
Statut
Membre
Dernière intervention
13 juin 2009

ça marche si dans mon programme n'envoie que les tableau entier. Mais si on doit re utiliser la chaine reçu plusieur fois pour les autres buts, c'est pas pratique.

Voici, mon serveur

char Requete[20];
while(1){
        sockNet = AttendUneConnexion(PortTCP);

        do{
               
            recv(sockNet,Requete,20,0);
            //TO DO: utiliser Requete
            if(){};
           
            if(){}

        }while(test)
}

Merci!
Messages postés
402
Date d'inscription
mardi 1 mai 2001
Statut
Membre
Dernière intervention
15 août 2011

char buffer[20];
recv(sock, buffer, sizeof(buffer), 0);
int* pint (int*)buffer; // tableau de 5 int (20 / sizeof(int) 5)
printf("%d - %d - %d - %d - %d\n", pint[0], pint[1], pint[2], pint[3], pint[4]);

tu devrais revoir ton protocole de communication ou donner plus de détail parce qu'il parrait bizzard ...

~(.:: NitRic ::.)~