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

 Delphi Discussion :

serveur socket envoi de plusieurs infos


Sujet :

Delphi

  1. #1
    Membre du Club
    Homme Profil pro
    Electricien
    Inscrit en
    Juillet 2013
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Electricien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2013
    Messages : 67
    Points : 49
    Points
    49
    Par défaut serveur socket envoi de plusieurs infos
    Bonjour à tous,

    je suis novice dans le développement, et je souhaite savoir si il est possible d'envoyer différente informations via un socket. Je m'explique, dans la plupart des exemples on écrit un texte dans champ et la réceptionné dans un champ serveur.

    je voudrais créer 3 champ texte sur le client et et 3 champs texte de réception sur le serveur.
    Est t'il possible de le faire avec un seul socket et comment?


    cordialement

    Oscar

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    tu peux commencer pas un truc très simple toujours avec tu texte :

    côter serveur, tu construit ton message avec une TStringList, en pseudo

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SL.Add('T1');
    SL.Values['T1'] := 'MonTexte devant aller sur Edit1';
    SL.Add('T2=autre texte mais allant sur Edit2');
    Utiliser la propriété CommaText ou Text, c'est cette chaine que tu enveras via SendText du Socket

    Côté client,
    Quand tu reçois le buffer par le socket avec un ReceiveText
    Tu affectes la chaine reçu dans CommaText ou Text d'une TStringList, tu utilises Names[] et Values[] qui découpera sur le = !

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Edit1.Text := SL.Values['T1'];
    Edit2.Text := SL.Values['T2'];
    Faut juste penser que si tu envoie de gros buffer, ils peuvent être reçu découpé côté client, j'avais pour ma part fait un parsage plus complexe qui découpait de message en message, et le bout restant était conservé et concaténé avec les données suivantes puis un nouveau tour de parsage et ainsi de suite ...
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre du Club
    Homme Profil pro
    Electricien
    Inscrit en
    Juillet 2013
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Electricien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2013
    Messages : 67
    Points : 49
    Points
    49
    Par défaut
    Tous d'abord, merci pour votre réponse réactive.

    je vais faire des essais, j'ai juste omis de signaler que seul le serveur est en delphi, mon client est écrit en windev mobile pour Android.

    en faisant des essais ce soir j'ai réussi en appelant 2 socket différent et 2 port à envoyer 2 infos de 2 champ différents.

    mais je ne sait pas pourquoi sur 1 champ je reçois le texte mais juste devant j'ai 1 chiffre qui correspond au nombre de caractères du texte ???

    cordialement

    Oscar

  4. #4
    Membre du Club
    Homme Profil pro
    Electricien
    Inscrit en
    Juillet 2013
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Electricien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2013
    Messages : 67
    Points : 49
    Points
    49
    Par défaut Problème réception Socket
    Bonjour à tous,

    Voila je suis confronté à un problème, Lorsque je reçois un texte sur mon champ texte , je reçois un chiffre correspondant au nombre de lettres du mot juste devant

    Exemple:

    J'envoie "Bonjour"

    je reçois 7Bonjours

    j'envoie "A"

    je reçois 1A

    Comment peut t'on corrigé ce bug

    Cordialement

    Oscar

  5. #5
    Membre du Club
    Homme Profil pro
    Electricien
    Inscrit en
    Juillet 2013
    Messages
    67
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Aisne (Picardie)

    Informations professionnelles :
    Activité : Electricien
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juillet 2013
    Messages : 67
    Points : 49
    Points
    49
    Par défaut Problème Résolu
    Merci pour votre Aide

    Problème Résolu

    Cordialement

    Oscar

  6. #6
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 459
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 459
    Points : 24 873
    Points
    24 873
    Par défaut
    Citation Envoyé par Oscar02 Voir le message
    je vais faire des essais, j'ai juste omis de signaler que seul le serveur est en delphi, mon client est écrit en windev mobile pour Android.
    j'ai 1 chiffre qui correspond au nombre de caractères du texte ???
    Oui c'est le mode par défaut en WinDev apparu en 7.0 (même déjà en 5.5 de Mai 2002, je crois), avec une longueur au début, il savoir que le socket en mode normal sans taille plantait si il y avait un caractère Zéro dans le buffer
    La 7.5 beta corrigeait ce bug mais pas celui d'attribution du N° de Socket qui pouvait être le même si deux thread tournait chacun sur un port différent (chacun son listen) !
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

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

Discussions similaires

  1. Serveur multithreads, envoie données par socket
    Par Orci76 dans le forum Threads & Processus
    Réponses: 5
    Dernier message: 15/07/2010, 17h44
  2. Réponses: 15
    Dernier message: 24/11/2008, 16h16
  3. Socket envoi message Client/Serveur
    Par sebkill dans le forum C#
    Réponses: 27
    Dernier message: 28/05/2008, 22h34
  4. [toFAQ][socket] Envoi d'une structure
    Par julien20vt dans le forum C++
    Réponses: 15
    Dernier message: 23/04/2003, 15h47
  5. [Socket]envoie de fichier!!!
    Par SamDaKap dans le forum C++Builder
    Réponses: 5
    Dernier message: 20/11/2002, 08h07

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