TNDFR
Messages postés9Date d'inscriptionjeudi 5 février 2004StatutMembreDernière intervention 2 octobre 2004
-
5 août 2004 à 15:39
cs_djl -
6 août 2004 à 06:49
slt,
j'essay d'envoye struct type via winsock (chat programme)le struct comprend les info sur une personne connecter:
struct PERSON
{
int age;
int ss;
int weight;
char *name
} test_struct;
le server recoit tous les int mais pas le char?
pkoi?
si ya une autre theory pour collecter les info sur une personne connecter au chat n'hesitez pas a me faire un sign
TNDFR
Messages postés9Date d'inscriptionjeudi 5 février 2004StatutMembreDernière intervention 2 octobre 2004 5 août 2004 à 16:10
Merci de ta reponse Arnotic,voila le code pour mieux comprendre
mon blem:
-------------Client----------------------------RESUME
test_struct.age=21;
test_struct.weight=63;
test_struct.name="Joe";
struct PERSON
{
int age;
int ss;
int weight;
char name[256]
} test_struct;
................
............
char txt[sizeof(test_struct)];
......
......
memcpy(&test_struct, txt, sizeof(test_struct));
------------------------------------------------------
mais quand je fai test_struct.name ya rien????!!!
est ce que je peux envoyee une class (object )via winsock ? je peux faire ca en java sans problem mais en c++....
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 5 août 2004 à 16:23
Envoyer une classe, faudra un car scolaire !!!
On est pas dans le monde interprete des JAVAistes at autres danseurs ici, on envoie des ppaquets d'octets et rien d'autre.
ciao...
BruNews, Admin CS, MVP Visual C++
Vous n’avez pas trouvé la réponse que vous recherchez ?
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 5 août 2004 à 16:30
BruNews> LoOl t'es danseur? J'timagine bien en tutu en peaux de chevre en train de te tremousser devant ton pc.
TNDFR et Arnotic> Comme la dis Brunews, via winsock il y a que des paquets qui transite. Soit des chaine de caractères. Y'a qu'a regarder le prototype de send() pour s'en assurer!
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 5 août 2004 à 16:34
TNFDR> tu te prend la tete inutillement!
Envoie tes données prècèdé d'un FLAG, comme le font plein de client/serveur comme IRC.
Pour envoyer tes infos t'q qu'a faire un truc du genre
char Info[256] = "Name:TNFDR;;IP:127.0.0.1;;..."
Puis quand tu recois tes données tu les split pour en sortir chaque élement.
Regarde du coté de strtok pour splitter une chaine.
cs_Arnotic
Messages postés933Date d'inscriptiondimanche 1 avril 2001StatutMembreDernière intervention 9 janvier 2012 5 août 2004 à 16:36
pas optimisé ca : pour l'ip déjà tu peux mettre uniquement un DWORD donc 4 octects evite de mettre des caractères de spéarions mais reflechie : element 1 = X octects, ...
après lecture en partant que c est le pointeur du début du paquet tu fais c+X, ...
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 5 août 2004 à 16:48
Arnotic et BruNews> c'est pas fini les 2 chinois, il a pas l'air de comprendre grand chose a votre language.
Parlons peu, parlons bien........ Parlons vagin (fallait que je la sorte celle la)
Arnotic> Dans le cas de l'adresse IP, il peut bien entendu utilisé un DWORD. Seulement je ne sais pas de quel maniere il alloue l'espace memeoire pour ces variables, mais dans le cas d'une allocation dynamique, dur dur de se servir de la taille des infos envoyées au préalable. Les séparateurs reste assez simple d'utilisation mais comme tu l'as dis ne sont pas des plus optimisé.
DeAtHCrAsH
Messages postés2670Date d'inscriptionvendredi 25 janvier 2002StatutMembreDernière intervention 6 février 2013 5 août 2004 à 17:05
Oulalala il est violent la le BruNews.
Tu t'es levé du mauvais pieds coco BriNious ?
TNFDR> Pour commencer je vois pas le rapport entre une histoire pointeur et la POO... Faut que tu m'expliques!
Ensuite je crois que pour toi la notion de pointeur est très confuse dans ton esprit!
DEFINITION :
Pointeur : Pour faire simple, un pointeur reprèsente l'adresse memoire du premier element que compose ta variable. Après bien entendu tu peux deplacer ton pointeur en l'incrémentant ou en le décrémentant!
Essaye cette exemple ca t'aidera surement mieux a assimiler la notion de pointeur:
char *ma_chaine = new char[256];
strcpy(ma_chaine,"Je suis un pointeur");
while(*ma_chaine)
{
printf("%c\n",*ma_chaine);
ma_chaine++;
}
Donc si t'as tout bien pigé winsock envoie des octets et si tu lui donne un pointeur a envoyé, il va t'envoyer l'adresse pointé qui comme te la dis Arnotic correspond a 4 octets.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 5 août 2004 à 17:13
Mais non pas violent, c'est pour son bien.
Faut qu'il sache qu'une adresse memoire n'est valable QUE dans son propre processus, s'il envoie un pointeur (4 octets referençant une adresse), ne vaudra absolument plus rien a l'arrivee.
Faut au moins savoir difference entre pointeur et buffer, on envisage d'aller plus loin quand cela est acquis, pas avant.
Ne me semble pas avoir dit quoi que ce soit de deplace.
BruNews
Messages postés21040Date d'inscriptionjeudi 23 janvier 2003StatutModérateurDernière intervention21 août 2019 5 août 2004 à 17:40
Le repete pas, j'ai fait prof un an (y a bien longtemps maintenant), j'ai abandonne sinon fallait que je me mette aux valium pour pas en tuer un par jour.