begin process at 2010 02 09 19:51:56
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Linux

 > 

Autre

 > 

Envoi structure dans une Socket


Derniers messages déposésPoser une question dans le forum ou lancer une discussion

Envoi structure dans une Socket

samedi 8 décembre 2007 à 19:23:39 | Envoi structure dans une Socket

meastalavista

Bonjour

je programme un client-serveur qui gére des réservations.
Au début je voulais me contenter d'envoyer des simples message,mais ca s'est avéré trop lourd.

on suppose que j'ai une structure de type:

structure reserv
{char num [5];
  char nom [10];
  char description [20];
};

Le probléme, c'est que je ne vois pas comment envoyer des structures par socket et comment les récupérer du coté serveur.

Si quelqu'un peut m'aider à avancer,ca serait sympa.
Au plaisir de vous lire

samedi 8 décembre 2007 à 19:56:50 | Re : Envoi structure dans une Socket

SAKingdom

Membre Club
Réponse acceptée !
Ben

struct struct_test {
    int toto;
};

int main () {
    struct struct_test test = {5};
    ...
    send(..., (char*)&test, sizeof(struct struct_test), ...);
    ...
}

Non ?

C++ (@++)

dimanche 9 décembre 2007 à 15:53:56 | Re : Envoi structure dans une Socket

lektrosonic

Réponse acceptée !
salut,
tu definit un caractere en tant que separateur (exemple "~"), ou meme char seperator = 1  (caractere de code ascii 1 donc vraiment le caractere qui s utilise rarement)
dans ton buffer d envoi:
strcpy(buffer,reserv.num);
strcat(buffer,"~"));
strcat(buffer,reserv.nom);
strcat(buffer,"~"));
strcat(buffer,reserv.descritpion);
strcat(buffer,"~"));

a l'arrivee des donnees:
tu auras un truc qui ressemble a sa dans le buffer de reception:
"45~setphane~test~"

char* part[3];
int len=strlen(buffer_reception);
part[0]=&buffer_repection[0];
int j=0;
for(i=0;i<=len;i++)
{
    if(buffer_repection[i]=='~'
    {
        if(j==3)
        { 
             buffer_reception[i]=0;
             break;
       }
       else
       {
                j++;
              part[j]=&buffer_repection[i+1];
             buffer_reception[i]=0;
       }
    }
}

au final tu auras part[0]=="45" part[1]=="stephane" et part[2]=="test"

l3KTr0 Was HeRe
dimanche 9 décembre 2007 à 15:59:52 | Re : Envoi structure dans une Socket

lektrosonic

Réponse acceptée !
correction

if(j==2) au lien de if(j==3)

l3KTr0 Was HeRe
dimanche 9 décembre 2007 à 16:59:13 | Re : Envoi structure dans une Socket

SAKingdom

Membre Club
Réponse acceptée !
Il envoit une structure contenant des tableaux de taille bien définie.
Si il utilise le même principe à la réception qu'à l'envois, c'est à dire:

recv(..., (char*)&test, sizeof(struct struct_test), ...);

Il devrait être capable de récupérer toute ses chaines correctement.

C++ (@++)

dimanche 9 décembre 2007 à 18:17:18 | Re : Envoi structure dans une Socket

meastalavista

Bonjour,

Merci bcp pour vos reponses,ca m'a été de grande utilité.

tout marche nikel maintenant :d


Hasta La Vista Baby
L'urgent est fait, l'impossible est en cours, pour les miracles prévoir un délai...


Cette discussion est classée dans : serveur, envoi, socket, char, structure


Répondre à ce message

Sujets en rapport avec ce message

sockets: envoi d'une structure... [ par julien20vt ] Maintenant que j'ai réussi à envoyer des char, des int[], je voudrais envoyer un structure faite maison.Le pb est que le socket n'accepte que les char Thread et socket besoin de conseil [ par kawito ] Salut,je desire realiser un client/serveur TCPle probleme est que les fonctions accept et recv sont bloquante.donc cela bloque l'affichage etc...mon p Socket et envoi multiple [ par Disdoll ] Bonjour. Je suis en train de coder un socket sous Borland C++ builder 6. Je précise que je suis un novice en socket. Je cherche à pour envoyer deux do Socket/send/recv [ par samuraijack1412 ] Bonjour, Je suis en train d'écrire une application de "chat". Elle se compose d'un client et d'un serveur. Maintenant, je veux que le client puisse Envoi de fichier par socket [ par galmone ] Bonjour j'ai un problème je voulais écrire un programme pour envoyer un fichier ce programme fonctionne aussi mais a un bug. Quand le client intercept probléme socket du serveur. [ par jerem3000 ] Bonsoir, Actuellement je commence a apprendre la programmation réseau et j'ai un peut du mal a tous comprendre, j'ai donc commencé a analyser le fonc delay client sur server socket linux [ par 0x0syscall ] Bonjour,Voilà, je voudrais savoir comment je dois m'y prendre pour que sur mon serveur si le client ne repond pas au bout de X secondes, le serveur co visu d'une structure [ par toni93330 ] Bonjour,Voila mon problème :j'utilise visual studio 2005 et le framework .NET. Dans mon programme principale j'inclus un fichier de définition qui con application client serveur avec les socket en c [ par zizodev ] Bonjour à tous,mon problème est comment créer une application 'qui demande'.Programme client et autre serveur client  'qui demande' :Pour se connecter Meilleur solution pour serveur MMORPG. [ par LA_Tupac ] Bonjour à tous! voila ma question: Je développe actuellement mon premier jeu en réseau. Le socket d'envoi du client est en tcp et le socket d'envoi du


Nos sponsors


Sondage...

Comparez les prix


HTC Hero

Entre 550€ et 550€

CalendriCode

Février 2010
LMMJVSD
1234567
891011121314
15161718192021
22232425262728

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,421 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales