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

Réseau C Discussion :

Problème de buffeur, problème avec SSL_read ?


Sujet :

Réseau C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé Avatar de Bathou
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Par défaut Problème de buffeur, problème avec SSL_read ?
    Bonjour!
    donc, après moult problèmes avec openssl, j'ai réussi à ouvrir une connexion entre mon serveur et mon client (merci les gens!!)
    mais, la, j'ai un autre bug que je ne comprends pas...
    alors, voila mon code :

    Coté client :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    /*envoi du hello au serveur*/
    SSL_write (ssl, "Hello, je suis le client\n", strlen("Hello, je suis le client\n"));
    Coté serveur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
     
    char buf[256];
      int i=0;
    /*init du buffer*/
      for (i = 0; i <= 256; i++) 
        {
        buf[i] = "0";
        }
    []
    /*reception du hello du client*/
    SSL_read(ssl,buf,sizeof(buf)-1);
    /*AFFICHAGE DU CONTENU DU BUFFEUR*/
    printf("le client dit :");
    	i=0;
     
    	while ((buf[i]!="\n")&&(i<256))
    	  {
    	  printf("%c",buf[i]);
    	  i=i+1;
    	  }
    	printf("\n");
    donc, la, tout va bien, ca m’affiche ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    le client dit :Hello, je suis le client
     
    Accepting connections...
    mais quand j’enleve la dernière ligne, c’est le drame

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    le client dit :Hello, je suis le client
    Accepting connections...
    (euh les ptits carrés, je les voyait pas avant de faire un copié collé ici)
    Donc à priori, bug avec le buffeur…

    Donc je fais, tant pis, on envoie du coté serveur au client et la, paf le drame, il m’affiche ça coté serveur:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    le client dit :Hello, je suis le client
    ��������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������������
    Accepting connections...
    et coté client

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    le serveur dit :Hello, je suis le serveur
    HHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHHH
    Donc, soit je suis complétement KO et j’ai raté un truc élémentaire avec le buffeur soit j’ai un autre problème

    en utilisant ça : ça ne marche pas mieux...
    merci par avance de bien vouloir venir en aide à mes humbles neurones qui sont un peu crevé...

  2. #2
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 473
    Par défaut
    Citation Envoyé par Bathou Voir le message
    while ((buf[i]!="\n")&&(i<256))
    Wahou ! Subtil ! :-)

    Essaie de remplacer "\n" par '\n' !

    Les guillemets définissent une chaîne en mémoire read-only et renvoient un pointeur sur elle. Jamais le contenu d'une case de ton buffer - donc un caractère - ne pourra être égal à celui d'un pointeur !

  3. #3
    Membre confirmé Avatar de Bathou
    Inscrit en
    Mars 2007
    Messages
    179
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Mars 2007
    Messages : 179
    Par défaut
    alleluia!
    l'humble demeurée que je suis (on va mettre ça sur le compte de la fatigue ) te remercie du fond du fond du coeur!!!

  4. #4
    Modérateur
    Avatar de Obsidian
    Homme Profil pro
    Chercheur d'emploi
    Inscrit en
    Septembre 2007
    Messages
    7 473
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 49
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Chercheur d'emploi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2007
    Messages : 7 473
    Par défaut
    Citation Envoyé par Bathou Voir le message
    alleluia!
    l'humble demeurée que je suis (on va mettre ça sur le compte de la fatigue ) te remercie du fond du fond du coeur!!!
    C'était un plaisir :-)

    J'ajouterais que :

    1) Il vaut mieux de trouver une vraie fin de chaîne en C avec '\0' plutôt qu'un hypthétique retour à la ligne.

    2) Toutes les fonctions de réception par socket sont faites pour te renvoyer le nombre de caractères reçus et, à mon avis, SSL_read doit suivre la même règle. Essaie plutôt de récupérer ce chiffre dans un int et de t'en servir dans ta boucle, à la place du 256.

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

Discussions similaires

  1. Problème création de DLL avec CString
    Par loupdeau dans le forum MFC
    Réponses: 3
    Dernier message: 21/07/2005, 20h55
  2. Problème de requête SQL avec instruction TRANSFORM
    Par Nosper dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 21/06/2005, 16h15
  3. Problème de connexion WMI avec Windows XP
    Par Against Me! dans le forum API, COM et SDKs
    Réponses: 2
    Dernier message: 24/05/2005, 09h28
  4. Problème de basckup Restore avec IBCONSOLE
    Par myseb dans le forum Outils
    Réponses: 10
    Dernier message: 04/11/2004, 14h48
  5. problème de capture son avec Directshow
    Par albator83 dans le forum DirectX
    Réponses: 2
    Dernier message: 06/11/2003, 17h18

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