begin process at 2012 05 28 21:35:19
  Trouver un code source :
 
dans
 
Accueil > Forum > 

C

 > 

Windows

 > 

Réseau & Internet

 > 

envoyer un entier avec send()


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

envoyer un entier avec send()

dimanche 23 mai 2010 à 14:07:28 | envoyer un entier avec send()

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û à la nature de données pouvant être envoyé par send (chaine de caractères), j'ai essayé d'envoyé mon entier sous forme de chaine, puis à l'arrivée de récupérer sa valeur:
** Coté envoyeur:
char data[]="Hello.";
char t_donnees_a_recevoir[10] = {0};
sprintf(t_donnees_a_envoyer, "%d", strlen(data));
send(sur_socket, t_donnees_a_envoyer, strlen(t_donnees_a_envoyer), 1)

** Coté recepteur:
char t_donnees_a_recevoir[10] = {0};
char* data;
recv(sur_socket, t_donnees_a_recevoir, sizeof(int), 1)
int taille = atoi(t_donnees_a_recevoir);

Un merci d'avance
dimanche 23 mai 2010 à 14:24:49 | Re : envoyer un entier avec send()

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û à la nature de données pouvant être envoyé par send (chaine de caractères), j'ai essayé d'envoyé mon entier sous forme de chaine, puis à l'arrivée de récupérer sa valeur:
** Coté envoyeur:
Code C/C++ :
char data[]="Hello."; 
char t_donnees_a_recevoir[10] = {0}; 
sprintf(t_donnees_a_envoyer, "%d", strlen(data)); 
send(sur_socket, t_donnees_a_envoyer, strlen(t_donnees_a_envoyer), 1);


** Coté recepteur:
Code C/C++ :
char t_donnees_a_recevoir[10] = {0}; 
char* data; 
recv(sur_socket, t_donnees_a_recevoir, sizeof(int), 1); 
int taille = atoi(t_donnees_a_recevoir); 


Voilà c'est plus joli comme ça
dimanche 23 mai 2010 à 22:01:36 | Re : envoyer un entier avec send()

BruNews

Administrateur CodeS-SourceS
Réponse acceptée !
recv(sur_socket, t_donnees_a_recevoir, sizeof(int), 1);
sizeof(int) comme longueur de buffer ???

char buf[16];
int len;
len = recv(sur_socket, buf, 16, 0);
et pour assurer une chaine valide:
if(15 < (DWORD) len) len = 15;
buf[len] = 0;

ciao...
BruNews, MVP VC++
lundi 24 mai 2010 à 01:02:43 | Re : envoyer un entier avec send()

nostalgius

Merci pour cette réponse aussi rapide ,
oui, je me suis dis que c'était un entier à l'origine, donc vaut mieux lui reserver une taille d'entier .
pour la valeur 16 que vous avez choisi comme taille, ça ne posera pas de problème, si la chaine envoyée était d'une longueur inférieur à 16? une autre question si c'est pas trop abusé de ma part: c'est quoi le DWORD , là sur le code ça m'a l'air d'un cast, c'est quoi au juste?? juste une dernière vous me conseillez d'utiliser la fonction atoi() pour récupérer de nouveau mon entier ou y a-t-il d'autres alternatives pour y arriver.
Merci encore pour la reponse . je vais essayer avec ça pour voire.
@+++
lundi 24 mai 2010 à 08:38:47 | Re : envoyer un entier avec send()

BruNews

Administrateur CodeS-SourceS
DWORD : unsigned long 32 bits

atoi() va impec.

ciao...
BruNews, MVP VC++
lundi 24 mai 2010 à 23:11:12 | Re : envoyer un entier avec send()

nostalgius

Merci encore


Cette discussion est classée dans : donnees, send, envoyer, char, recevoir


Répondre à ce message

Sujets en rapport avec ce message

/!\Comment envoyer par socket des donnees binaires svp [ par lolman27 ] sachant ke la fonctin send nenvoie que des characteres...si on veut envoyer une chaine comprenant un byte de valeur 0 (qui corespond a un eof en chara Comment envoyer ou recevoir un fichier d'une adresse ftp ? [ par JMGR ] Tout est dit dans le titre :)ex : bouton "S'incrire" qui envoit le fichier res.txt vers ftp.truc.fr/jmgr/res.txt 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 Envoyer et recevoir un fichier par Socket en C [ par coolboy78 ] Bonjour,j'aimerai Envoyer et recevoir un fichier par Socket en C. Mais je n'ai pas trouvé de fonction ni d'exemple pour ceci.Si kelkun pouvez maider, Envoi de classe avec send [ par piemur2000 ] Bonjour,Je voudrai envoyer une classe grace à un send.Par exemple cette classe :class Donnees{ int Type; int Taille; d prog en C, ecriture puis lecture de donnees de donnees dans un fichier fichier txt [ par 01472583690 ] Salut a tous ! voici mon probleme : Dans mon programme l'utilisateur doit entrer des donnees ( des char (nom, ville .....) , ainsi que des int ( age, probleme chat serveur client en C, comment gérer le fé que je puisse recevoir et envoyer dé message [ par lenneth666 ] En fait voila ds ma boucle j'ai d'abord un sendto et un recvfrom ensuite, dc j'envoi un message ms avant de pouvoir en envoyer un autre je doi d'abord WINSOCK : Envoi / Reception de structures [ par smoove5198 ] Bonjour, J'ai commencé a ecrire une classe permettant, en fonction de la facon dont on l'instancie, de gerer une connection cliente ou serveur : pour serveur web VC++ qui bug avec IE [ par kilomaster ] Bonjour, Je débute en C++, et j'ai pour projet de développer un petit serveur Web ...J'ai donc commencé à coder un petit serveur multithreads telnet p [débutant]recevoir et envoyer une chaine de caractère sur un port série en C? [ par makan94 ] bonjours à tous,sa fait déjas plusieur semaine que je recherche désespérément une solution a ma question sans avoir trouvé de réponse: Comment recevoi


Nos sponsors


Sondage...

Comparez les prix

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 : 0,406 sec (4)

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