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

C

 > 

Windows

 > 

Réseau & Internet

 > 

Socket: Comment envoyer et recevoir des octets?


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

Socket: Comment envoyer et recevoir des octets?

mercredi 3 mars 2010 à 10:38:42 | Socket: Comment envoyer et recevoir des octets?

LiaGalanodel

Bonjour,

Je m'appelle Amélie et je suis en apprentissage.
Je débute en C++ (j'ai suivis en partis le tutorial du site du zéros et d'autres tutoriaux) étant familière en programmation C et ayant un peu fait de java pour la programmation objet j'éssaye de me débrouiller.

Mais j'ai un problème.
J'ai réussis a faire un programme sur les Socket basé sur un client et un server s'envoyant simplement des "Hello". Mais maintenant je veu arriver a envoyer des octets et là je ne sais pas comment faire. je suis perdue.

Il faut savoir que mon programme se basait sur entre autre deux fonctions pour envoyé et recevoir une chaine de caractère: SendLine et ReceiveLine quié tait déclaré dans un header et définiot dans un source a part (c'est de toute façon comme ça que l'on fait dans les languages programmé objet a ce que j'ai compris).
J'aimerais donc tout simplement creer une fonction SendBytes et ReceiveBytes que je pourrais définir et utilisé comme bon me semble mais je n'ai aucune idée sur la gestion des octets.

Voila.

Merci a ceux qui feront attention a ce post.

Cordialement.
mercredi 3 mars 2010 à 17:29:52 | Re : Socket: Comment envoyer et recevoir des octets?

fregolo52

Membre Club
salut,

est ce que tu as accès au code sources de SendLine et ReceiveLine ?

Peux-tu nous montrer les prototypes ? Parce que je ne vois pas pourquoi tu ne pourrais pas envoyer des octets via SendLine.
jeudi 4 mars 2010 à 08:07:07 | Re : Socket: Comment envoyer et recevoir des octets?

jerem3000

Bonsoir,

Normalement tu dois pouvoir le faire avec t'es fonction SendLine et ReceiveLine.

Je ne suis pas sur d'avoir bien comprit ton problème, en gros tu aimerais pouvoir transférer autre chose que des fichier texte ou des chaine de caractère?

Si c bien sa ton problème pour transférer des binaire il te suffit de les ouvrir en mode binaire car pour le transfert c le même principe.

jérémy
jeudi 4 mars 2010 à 08:21:49 | Re : Socket: Comment envoyer et recevoir des octets?

LiaGalanodel

Pour mes fonctions voila leur prototypes:
Code C/C++ :
//SENDLINE
void Socket::SendLine(std::string s) {
  s += '\n';
  send(s_,s.c_str(),s.length(),0);
}


Code C/C++ :
//RECEIVELINE
std::string Socket::ReceiveLine() {
  std::string ret;
 //Infinite loop  
 while (1) {
    char r;

	//switch(variable)
    switch(recv(s_, &r, 1, 0)) //Descriptor that identifies a connected 
		//socket, a pointer to the buffer to receive incomming data (r adress), 
		//length in bytes of the buffer pointed,a set of flag that influence the 
		//behavior of this function. 
{   
      case 0: //If recv retiurn 0 the connection is close
			  // not connected anymore;
              // ... but last line sent
              // might not end in \n,
              // so return ret anyway.
        return ret;
      case -1://Error managment
        return "";
//      if (errno == EAGAIN) {
//        return ret;
//      } else {
//      // not connected anymore
//      return "";
//      }
    }


Mon problème est que j'aimerais pouvoir transfer des octets mais je ne sais pas comment les déclarer, les utiliser.

Donc le principe c'est que je peus le faire avec ces fonctions.
jeudi 4 mars 2010 à 09:26:32 | Re : Socket: Comment envoyer et recevoir des octets?

fregolo52

Membre Club
une idée :
Attention je n'ai pas testé (case -1 : c'est peut-etre une connerie ce que j'ai fais)et je ne suis pas super balaise en STL, mais si tu gardes les STL, je pense que ceci est possible.
Code C/C++ :
//SENDBYTES
void Socket::SendBytes(std::vector< char > p) {
  send(s_,p,p.size(),0);
}


std::vector< char > Socket::ReceiveLine() {
  std::vector< char > ret;
 //Infinite loop  
 while (1) {
    char r;

	//switch(variable)
    switch(recv(s_, &r, 1, 0)) //Descriptor that identifies a connected 
		//socket, a pointer to the buffer to receive incomming data (r adress), 
		//length in bytes of the buffer pointed,a set of flag that influence the 
		//behavior of this function. 
{   
      case 0: //If recv retiurn 0 the connection is close
			  // not connected anymore;
              // ... but last line sent
              // might not end in \n,
              // so return ret anyway.
        return ret;
      case -1://Error managment
        return std::vector< char >NULL;
//      if (errno == EAGAIN) {
//        return ret;
//      } else {
//      // not connected anymore
//      return "";
//      }
    }


je ne vois pas quand est affecté le char r avec les vecteurs tu feras : ret.push_back(r);
jeudi 4 mars 2010 à 09:34:21 | Re : Socket: Comment envoyer et recevoir des octets?

LiaGalanodel

Merci beaucoup pour ton aide!


Est ce que c'est normal que dans le code il y est:
Code C/C++ :
std::vector< char > Socket::ReceiveLine() {

Sinon je vais tester ce que tu m'a proposer merci beaucoup.
jeudi 4 mars 2010 à 09:36:29 | Re : Socket: Comment envoyer et recevoir des octets?

LiaGalanodel

Toutees mes escuses je viens de comprendre le pourquoi. Je vais essayer de suite!
jeudi 4 mars 2010 à 09:51:09 | Re : Socket: Comment envoyer et recevoir des octets?

LiaGalanodel

J'ai juste une question: quelle est la syntaxe pour envoyé des octets quand j'apelle la fonction Sendline, je dois mettre:
Sendline (0x02) ?
jeudi 4 mars 2010 à 10:53:55 | Re : Socket: Comment envoyer et recevoir des octets?

fregolo52

Membre Club
Réponse acceptée !
petite erreur de copier/coller : c'est ReceiveByte.

Code C/C++ :
std::vector< char > buffer;
// par ex
buffer.push_back(0x45) // 1er octet
buffer.push_back(0x05) // 2e octet
....
SendBytes(buffer);
jeudi 4 mars 2010 à 11:12:17 | Re : Socket: Comment envoyer et recevoir des octets?

LiaGalanodel

Très bien! Merci beaucoup!

J'ai pas mal d'erreurs je vais regarder tout ça.
En tout cas je te remerci beaucoup pour m'avoir répondus et aussi rapidement en plus.


Cette discussion est classée dans : programmation, envoyer, socket, octets, recevoir


Répondre à ce message

Sujets en rapport avec ce message

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, taille a envoyer par socket [ par dyroj ] Mes salutation a tous,j'ai créer un programme d'envoi de fichier par socket, il marche tres bien par cable mais comme je suis en wifi c'est un peut le Envoyer et recevoir en RS232 depuis dos... [ par onki ] Bonjour à tous, je cherche à envoyer et recevoir des lignes de caractères par les port COM3 et COM4 du PC, et en recevoir. Le tout, depuis dos, en cr envoi d'un objet sans un socket [ par MahaYassine ] Bonjour,je voulais savoir comment procéder pour envoyer un objet en utilisant un socket. j'ai trouvé la méthode "send" qui permet d'envoyer des chaine C++?/ Problème pour recevoir des octets dans un tableau [ par LiaGalanodel ] Bonjour a tous. Je suis une grande débutante en c++ et je me heurte a un problème. Voila, je dois faire un programme de socket. J'utilise pour cela 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û envoyer/ recevoir des info de VB vers disque amovible. [ par mimi99 ] Bonjour tout le monde. Je compte sur votre âme charitable pour m'aider à finir mon code. [^^ange] Je suis vraiment débutante en VB, j'ai la version ex programmation socket [ par hanaw ] Comment écrire un programme simple communication client serveur en TCP/IP en C qui retourne au serveur un message contenant l'adresse IP du client. programmation socket [ par samijaba ] je suis entraint de dévélopper une application réseaux (client/serveur)mon probléme est que lorsque j'essai de connecter hors de réseau local il n'y a 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


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,186 sec (4)

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