begin process at 2012 05 30 17:29:25
  Trouver un code source :
 
dans
 
Accueil > Forum > 

Archive C/C++

 > 

Archives

 > 

Réseau / Internet

 > 

sockets: envoi d'une structure...


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

sockets: envoi d'une structure...

mercredi 23 avril 2003 à 11:51:25 | sockets: envoi d'une structure...

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 * et que ma structure ne veut pas se laisser caster en char *.

Auriez vous une solution à me proposer ?

Le pire c'est qu'il y a quelques mois en C, j'avais fait un prog avec des sockets et je pouvais y envoyer des structures, c'est étonnant qu'en C++ ce ne soit pas possible.
mercredi 23 avril 2003 à 14:13:06 | Re : sockets: envoi d'une structure...

CoreBreaker

Il faut sérialiser ta structure cad que tu transformes les données contenues dans la structure (attention aux pointeurs: la sérialisation doit serialiser les données déréférencées) en une chaine d'octets, par ex:

struct s
{
short s;
char c1, c2;
}

char serie[4];
struct s v;

memmove(serie, &s, 4);

Core Breaker


-------------------------------
Réponse au message :
-------------------------------

> 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 * et que ma structure ne veut pas se laisser caster en char *.
>
> Auriez vous une solution à me proposer ?
>
> Le pire c'est qu'il y a quelques mois en C, j'avais fait un prog avec des sockets et je pouvais y envoyer des structures, c'est étonnant qu'en C++ ce ne soit pas possible.
mercredi 23 avril 2003 à 14:22:40 | Re : sockets: envoi d'une structure...

julien20vt


Je vais te décevoir, mais je n'ai pas compris ce que tu voulais dire.
Concrètement mon pb est :

j'initialise un objet de ma structure, et je veux envoyer cet objet sur un socket. Pour ce faire, il faut que je le caste en char *.

Peut-etre qu'effectivement l'union est la bonne solution pour résoudre mon pb, toujours est il que je n'ai pas compris comment il fallait que je fasse.

Désolé d'être ignorant (je le suis un peu moins chaque jour heureusement) et en tous cas merci pour l'aide.
Si tu as le courage de me réexpliquer tout ca, je suis preneur.



-------------------------------
Réponse au message :
-------------------------------

> Il faut sérialiser ta structure cad que tu transformes les données contenues dans la structure (attention aux pointeurs: la sérialisation doit serialiser les données déréférencées) en une chaine d'octets, par ex:
>
> struct s
> {
> short s;
> char c1, c2;
> }
>
> char serie[4];
> struct s v;
>
> memmove(serie, &s, 4);
>
> Core Breaker
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > 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 * et que ma structure ne veut pas se laisser caster en char *.
> >
> > Auriez vous une solution à me proposer ?
> >
> > Le pire c'est qu'il y a quelques mois en C, j'avais fait un prog avec des sockets et je pouvais y envoyer des structures, c'est étonnant qu'en C++ ce ne soit pas possible.
>
mercredi 23 avril 2003 à 20:24:33 | Re : sockets: envoi d'une structure...

CoreBreaker

Le cast d'une structure en char * est impossible car les 2 types ne sont pas compatibles.
En fait sérialiser la structure revient à l'écrire dans un flux comme un fichier, comme ca:

struct s v; // une variable sur ta structure

fwrite(&v, 1, sizeof(v), fichier);

Imagine qu'à la place du flux du fichier ce soit le flux de ta socket.

Si tu veux, envoi moi le source à metaos@free.fr et je le compléterai.

Core Breaker


-------------------------------
Réponse au message :
-------------------------------

>
> Je vais te décevoir, mais je n'ai pas compris ce que tu voulais dire.
> Concrètement mon pb est :
>
> j'initialise un objet de ma structure, et je veux envoyer cet objet sur un socket. Pour ce faire, il faut que je le caste en char *.
>
> Peut-etre qu'effectivement l'union est la bonne solution pour résoudre mon pb, toujours est il que je n'ai pas compris comment il fallait que je fasse.
>
> Désolé d'être ignorant (je le suis un peu moins chaque jour heureusement) et en tous cas merci pour l'aide.
> Si tu as le courage de me réexpliquer tout ca, je suis preneur.
>
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> > Il faut sérialiser ta structure cad que tu transformes les données contenues dans la structure (attention aux pointeurs: la sérialisation doit serialiser les données déréférencées) en une chaine d'octets, par ex:
> >
> > struct s
> > {
> > short s;
> > char c1, c2;
> > }
> >
> > char serie[4];
> > struct s v;
> >
> > memmove(serie, &s, 4);
> >
> > Core Breaker
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > 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 * et que ma structure ne veut pas se laisser caster en char *.
> > >
> > > Auriez vous une solution à me proposer ?
> > >
> > > Le pire c'est qu'il y a quelques mois en C, j'avais fait un prog avec des sockets et je pouvais y envoyer des structures, c'est étonnant qu'en C++ ce ne soit pas possible.
> >
>
vendredi 25 avril 2003 à 10:48:26 | Re : sockets: envoi d'une structure...

julien20vt


Merci, en fait c'est bon j'ai réussi à envoyer ma structure.


-------------------------------
Réponse au message :
-------------------------------

> Le cast d'une structure en char * est impossible car les 2 types ne sont pas compatibles.
> En fait sérialiser la structure revient à l'écrire dans un flux comme un fichier, comme ca:
>
> struct s v; // une variable sur ta structure
>
> fwrite(&v, 1, sizeof(v), fichier);
>
> Imagine qu'à la place du flux du fichier ce soit le flux de ta socket.
>
> Si tu veux, envoi moi le source à metaos@free.fr et je le compléterai.
>
> Core Breaker
>
>
> -------------------------------
> Réponse au message :
> -------------------------------
>
> >
> > Je vais te décevoir, mais je n'ai pas compris ce que tu voulais dire.
> > Concrètement mon pb est :
> >
> > j'initialise un objet de ma structure, et je veux envoyer cet objet sur un socket. Pour ce faire, il faut que je le caste en char *.
> >
> > Peut-etre qu'effectivement l'union est la bonne solution pour résoudre mon pb, toujours est il que je n'ai pas compris comment il fallait que je fasse.
> >
> > Désolé d'être ignorant (je le suis un peu moins chaque jour heureusement) et en tous cas merci pour l'aide.
> > Si tu as le courage de me réexpliquer tout ca, je suis preneur.
> >
> >
> >
> > -------------------------------
> > Réponse au message :
> > -------------------------------
> >
> > > Il faut sérialiser ta structure cad que tu transformes les données contenues dans la structure (attention aux pointeurs: la sérialisation doit serialiser les données déréférencées) en une chaine d'octets, par ex:
> > >
> > > struct s
> > > {
> > > short s;
> > > char c1, c2;
> > > }
> > >
> > > char serie[4];
> > > struct s v;
> > >
> > > memmove(serie, &s, 4);
> > >
> > > Core Breaker
> > >
> > >
> > > -------------------------------
> > > Réponse au message :
> > > -------------------------------
> > >
> > > > 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 * et que ma structure ne veut pas se laisser caster en char *.
> > > >
> > > > Auriez vous une solution à me proposer ?
> > > >
> > > > Le pire c'est qu'il y a quelques mois en C, j'avais fait un prog avec des sockets et je pouvais y envoyer des structures, c'est étonnant qu'en C++ ce ne soit pas possible.
> > >
> >
>


Cette discussion est classée dans : envoi, envoyer, char, structure, sockets


Répondre à ce message

Sujets en rapport avec ce message

Structure de communication. [ par lektrosonic ] Bonsoir,je travaille sur un projet client-serveur. J'ai reflechi sur comment je vais envoyer les donnees entre les deux applications et j'ai etablit l Envoi structure dans une Socket [ par meastalavista ] Bonjourje 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é tro Convertion d'entiers/flottant vers un char* [ par katerson ] Bonjour! Dans le cadre d'un échange de données serveur/client, j'ai besoin de convertir plusieurs int dans un char* afin d'envoyer la chaine via prot Pb d'envoi de structure par socket [ par Wriggles ] Bonjour à tous, Je dois transférer un fchier par socket d'un client vers un serveur.Pour ce faire, je souhaite en premier lieu, envoyer une structru envoyer un entier avec send() [ par nostalgius ] Salut tout le monde.. Voilà, tout est dans le titre du poste, j'ai bon cherché, j'arrive pas à envoyer un simple int par la fonction send(), c'est dû FILE et Structure en C++ [ par samissam ] Bonjour, j'ai fait un code en Dev C++ qui fait la lecture d'un FILE mais mon probleme est comment puisse-je faire son traitement afin d'extraire les récupération adresses structure [ par romauto750 ] Bonjour à tous, J'ai une petite question concernant les adresses. Lors de la lecture d'un fichier je stocke les éléments dans une structure (je fa 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 Problème d'envoi d'une structure (bizarre) [ par pedro2808 ] Bonjour, je suis entrain de créer un programme qui permet de manipuler des annuaires sur un serveur depuis un client. Pour cela j'ai décidé de tran envoyer une lettre char, au pic 16F877 via un RS232 [ par mohsineb ] Salit tous le monde dans le cadre de mon projet de fin d'etudes, je cherche un code sert a envoyer une lettre char à un pic, via un cable rs232 le p


Nos sponsors


Sondage...

CalendriCode

Mai 2012
LMMJVSD
 123456
78910111213
14151617181920
21222324252627
28293031   

Consulter la suite du CalendriCode

A découvrir



 
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 : 1,045 sec (4)

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