-
connect en tcp
Bonjour a tous !
J'arrive à envoyer une chaine de careactere dans une socket mais j'ai besoin d'envoyer un entier mainteant mais je ne vois pas comment faire.
Pourriez-vous m'aider à trouver la ligne de ccode cote serveur et cote client me permettant de faire cela ?
Voici ce que j'ai essayé de faire, ça ne marche pas :
cote client
int i = 0;
send(sock, &i, sizeof(i), 0);
cote serveur
int i ;
recv(sock, &i, sizeof(i), 0);
-
je souhaite egalement envoyer une stuct en tcp. Cote client je pense qu'elle est partie.
Cote serveur y a un soucis.
ma struct est composée d'un char et d'un tableau de char (256). Pas original je sais j'aurais pu les regrouper mais je cherche a comprendre le principe.
voici ce que j'ai fait
structure s;
recv( ear, &s, sizeof( structure ), 0 );
apparemment s.char est bon, mais s.string est etrange : quand j'affiche un à un ses caractères, ma string envoyée apparait seulement à partir du 4e char.
Vous voyez pourquoi, et comment le corriger ?
-
Tu as un peu plus de code ou tu envoies juste comme tu fais là ?
Pour envoyer un entier il faut que tu fasses attention à l'endianess. Tu as des fonctions faites pour ça : htons/ntohs (pour un short), et htonl/ntohl (pour un long).
-
Ma question repose notamment sur le problème du 4eme caractere. D'ou vient ce nombre 4 (que j'ai trouvé en affichant un à un tous les caractères de ma chaine, car sinon la string n'en affichait aucun).