IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C++ Discussion :

problème avec les sockets


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 209
    Par défaut problème avec les sockets
    bonjour
    je veux mettre sur le buffer que je vais envoyer via le socket des entiers, des floats et et une chaine, avec la fonction send(csock, buffer, 255, 0) le buffer doit être du type const char*. je me demande comment faire.

    merci pour vos réponses

  2. #2
    Rédacteur

    Avatar de ram-0000
    Homme Profil pro
    Consultant en sécurité
    Inscrit en
    Mai 2007
    Messages
    11 517
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant en sécurité
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mai 2007
    Messages : 11 517
    Par défaut
    Code Un exemple de code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    float f = 3.1415;
    int i = 123456;
    char buffer[255];
       sprintf(buffer, "data = %f %d", f, i);
       send(csock, buffer, strlen(buffer), 0);
    A mettre à une sauce un peu plus c++ et à sécuriser afin de ne pas faire un buffer overflow avec le sprintf().

    C'est pour te montrer le principe
    Raymond
    Vous souhaitez participer à la rubrique Réseaux ? Contactez-moi

    Cafuro Cafuro est un outil SNMP dont le but est d'aider les administrateurs système et réseau à configurer leurs équipements SNMP réseau.
    e-verbe Un logiciel de conjugaison des verbes de la langue française.

    Ma page personnelle sur DVP
    .

  3. #3
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Par défaut
    La solution de ram-0000 te permettra d'envoyer une chaîne de caractère avec les valeurs.
    Si tu veux les envoyer en binaire, alors il faudra passer par de htonl à l'envoi et ntohl à la réception pour les long. Pour la chaîne de caractère, un bête memcpy devrait suffire. En revanche, j'avoue que je ne sais pas comment faire pour les float/double.

  4. #4
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 209
    Par défaut
    bonjour
    merci ram-0000 j'ai trouvé la fonction sprintf dans une heure tardive hier mais mon problème devient de plus en plus compliqué :

    à la reception je sais pas comment faire le traitement inverse.

    ce que je veux faire c'est d envoyer une trame contenant un header un identificateur est des données utiles et jusqu'à présent j'avoue que je ne sais pas comment extraire les informations de la trame reçue. merci pur vos suggestions

  5. #5
    Alp
    Alp est déconnecté
    Expert confirmé

    Avatar de Alp
    Homme Profil pro
    Inscrit en
    Juin 2005
    Messages
    8 575
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Juin 2005
    Messages : 8 575
    Par défaut
    Bonjour,

    Question qui peut sembler bête : ne peux-tu pas utiliser une bibliothèque C++ qui te machera le travail et surtout te permettra de travailler directement sur des std::string, comme Boost.Asio ?

    Bien que là, tu peux déjà travailler sur une std::string et des std::stringstream pour construire la chaîne à envoyer, et récupérer un const char* grâce à la fonction membre std::string::c_str(), à appeler sur la std::string que tu auras construite.

    PS : la FAQ C++ te sera d'une grande aide si tu ne connais pas tout ça.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    209
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations forums :
    Inscription : Décembre 2006
    Messages : 209
    Par défaut
    merci pour ta solution Alp je vais profiter de ta gentillesse et ton expérience pour te demander comment je vais traiter la chaine en réception

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. un serieux problème avec les sockets
    Par dc.sara dans le forum Réseau
    Réponses: 4
    Dernier message: 23/01/2008, 16h11
  2. problèmes avec les sockets
    Par lukbutor dans le forum Réseau
    Réponses: 24
    Dernier message: 23/04/2007, 01h12
  3. Problème avec les sockets
    Par projeticq dans le forum Réseau
    Réponses: 14
    Dernier message: 19/04/2007, 09h32
  4. Problème avec les sockets et la fonction accept
    Par projeticq dans le forum Réseau
    Réponses: 6
    Dernier message: 13/04/2007, 11h37
  5. [Win32] Problème avec les sockets
    Par mickael777 dans le forum MFC
    Réponses: 3
    Dernier message: 12/08/2005, 11h15

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo