[C++ Builder] Socket : envoyer des structures

Socket : envoyer des structures [C++ Builder] - Programmation

Marsh Posté le 29-03-2002 à 11:57:44    

:hello:
 
Voila j'me suis fait un p'tit chat tranquille, j'arrive a envoyer du texte, mais je sais pas comment envoyer des structures (avec pseudo, numero client, etc...).
 
J'arrive pas a utiliser la fonction SendBuf.
Elle prend un void * en parametre. Mais je veux pas mettre un void * (marche pas avec un cast :/)
 
merci.


---------------
Super.
Reply

Marsh Posté le 29-03-2002 à 11:57:44   

Reply

Marsh Posté le 29-03-2002 à 13:05:36    

? normalement ca devrait passer avec un cast
 
genre
 
 
typedef struct
{
  int truc;  
  float machin;
}SMaStruct;
 
SMaStruct toto;
...
 
SendBuf((void *)&toto..)
 
 
 
je connais po builder ni SendBuf, mais je ne vois pas de raison qui font que tu ne pourrais pas recaster un ptr vers structure en void *

Reply

Marsh Posté le 29-03-2002 à 14:36:18    

arf c'est ce que j'ai fait mais au lieu de me faire une struct je me suis entraine avec un int :D
 
Mais ca marche pas :/


---------------
Super.
Reply

Marsh Posté le 29-03-2002 à 20:33:21    

- Il met quoi comme erreur ?
- Tu peux mettre un bout de code ?


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 29-03-2002 à 23:49:27    

une manière simple C d'utiliser SendText et de passer des TStringList (StringList.Text)
 
Mais je te conseille d'utiliser quand même SendBuff... (expérience perso qui C pas super bien passé avec SendText)
 :hello:


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 29-03-2002 à 23:51:01    

chrisbk a écrit a écrit :

? normalement ca devrait passer avec un cast
 
SendBuf((void *)&toto..)
 




Vient d'où le &  ? :??:

 

[jfdsdjhfuetppo]--Message édité par [SDF]Poire--[/jfdsdjhfuetppo]


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 30-03-2002 à 00:08:25    

Bhen pour donner l'adresse de la zone mémoire...


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-03-2002 à 00:15:20    

antp a écrit a écrit :

Bhen pour donner l'adresse de la zone mémoire...  




beh y a pas besoin la vu que toto C 1 structure.
SendBuf((void *)toto..) je pense....
(fatigué alors soyez indulgents :sarcastic: )


---------------
Des bons sites pour Delphi? http://forum.hardware.fr/forum2.php3?post=16838&cat=10 -- informaticien -- http://www.z0rglub.com/phpwebgallery/ -- Delphi :love:
Reply

Marsh Posté le 30-03-2002 à 01:16:28    

Heu possible... je suis fatigué aussi :D


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Marsh Posté le 30-03-2002 à 02:28:38    

[SDF]Poire a écrit a écrit :

 
beh y a pas besoin la vu que toto C 1 structure.
SendBuf((void *)toto..) je pense....
(fatigué alors soyez indulgents :sarcastic: )  




 
 
nan :D
 
ca va etre le drame si tu fais ca
 
 
observons !
 
si jamais j'ai
 
typedef struct
{
 int a:
 int b;
}SBidule
 
 
et  
 
SBidule c;
c.a = 20;
c.b = 30;
 
SnedBuff((void *)toto..)
 
bon
1) la on demande au compilo de caster un truc qui fait 8o en un truc qui en fait 4 . y risque de gueuler
 
2) mettons il le fait . que va t'il chopper ? non pas l'adresse de la structure (qui s'obtient par &c), mais les 4 premiers octet de la structure (soit a, soit 20)
 
 
et il va faire sa copie a partir de l'adresse 20  
 
 
drame en perspective :D

Reply

Marsh Posté le 30-03-2002 à 02:28:38   

Reply

Marsh Posté le 30-03-2002 à 11:05:18    

Le compilateur va écrire a écrit :

 
Access violation. Read at address 00000014.




 
Message classique de Builder/Delphi :D
(14 = 20 en hexa)

 

[jfdsdjhfuetppo]--Message édité par antp--[/jfdsdjhfuetppo]


---------------
mes programmes ·· les voitures dans les films ·· apprenez à écrire
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed