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 :

Chaine de caractères, pointeurs et socket


Sujet :

C

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2010
    Messages : 116
    Par défaut Chaine de caractères, pointeurs et socket
    Bonjour à tous,

    Je me confronte à un souci technique (de base) et je ne trouve pas la solution depuis hier...

    Je développe un programme type client/serveur en utilisant les sockets.
    Et j'ai définit un format de trame standard égal à 11 caractères.

    Donc toutes mes trames envoyées et reçus auront une taille fixe de 11 caractères.

    Seulement je n'arrive pas à déclarer en début de programme deux trames fixe que je viendrais à modifier tout au long de mon main.

    Exemple:

    char trameEnvoyer[12];
    char trameRecevoir[12]:

    mais comment je peux par la suite mettre à jour cette trame ?

    Exemple trameEnvoyer = "AZERTYUIOPQ";

    send()

    recv(trameRecevoir)

    etc..
    ?

    Merci à vous,

  2. #2
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jeanjean6 Voir le message
    char trameEnvoyer[12];
    char trameRecevoir[12]:

    mais comment je peux par la suite mettre à jour cette trame ?

    Exemple trameEnvoyer = "AZERTYUIOPQ";
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    strcpy(trameEnvoyer, "AZERTYUIOPQ")

    Citation Envoyé par jeanjean6 Voir le message
    recv(trameRecevoir)
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    tramerecevoir[11]='\0';
    recv(socket, tramerecevoir, 11);
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

  3. #3
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Avril 2010
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations forums :
    Inscription : Avril 2010
    Messages : 116
    Par défaut
    Super merci ça fonctionne !

  4. #4
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 830
    Billets dans le blog
    1
    Par défaut
    Citation Envoyé par jeanjean6 Voir le message
    Super merci ça fonctionne !
    Tant mieux.

    Accessoirement, si tu ne fais qu'envoyer des chaines, alors c'est idiot d'envoyer systématiquement 11 caractères. Car si la chaine n'en fait que 8, tu en fais passer 3 pour rien...

    Voici comment envoyer une chaine variable
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    send(socket, trameenvoyer, strlen(trameenvoyer) + 1)

    Et comment la récupérer intelligemment de l'autre coté
    Code c : Sélectionner tout - Visualiser dans une fenêtre à part
    recv(socket, tramerecevoir, 12)
    En envoyant "n+1" caractères tu envoies le '\0' terminant la chaine qui est alors reçu de l'autre coté et intégré dans la chaine de destination qui devient donc une vraie chaine. Et tu ne pollues pas ton réseau avec des caractères inutiles...
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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

Discussions similaires

  1. Pointeur sur une chaine de caractère string
    Par Lucier dans le forum C#
    Réponses: 9
    Dernier message: 17/03/2010, 14h22
  2. Réponses: 10
    Dernier message: 31/05/2007, 15h10
  3. Pointeur, tableau et chaines de caractères.
    Par rouliane dans le forum C++
    Réponses: 8
    Dernier message: 19/12/2006, 20h27
  4. Pointeurs et chaines de caractères
    Par Maria1505 dans le forum C
    Réponses: 3
    Dernier message: 05/11/2006, 13h46
  5. Réponses: 14
    Dernier message: 22/04/2006, 21h59

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