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

Web & réseau Delphi Discussion :

TCP-IP et messages de contrôles


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2002
    Messages : 45
    Par défaut TCP-IP et messages de contrôles
    Bonjour Mr. François ,

    J’utilise le Tcp/ip pour connecter des automates d’analyses à l’informatique central , sur certains automates , il y des caractères de contrôles qui sont envoyés comme le ENQ, EOT , ACK, NAK , ce genre de caractère contrôles ne sont pas interceptés par les composants tcp-ip comme celui ide indy(IdTCPServer) ou de Overbyte(TWSocketServer), puisqu'il n' y a pas CRLFà la fin .

    Comment on peut donc faire pour intercepter ce genre de message de contrôles indispensable pour la suite de la communication . en réalité beaucoup de protocole comme l’ASTM commence par envoyé un ENQ pour établir la connexion , l’intercepteur doit retourner un ACK à cette demande, c’et après que le vrai message est envoyé.

    Merci d’avance de votre aide ou suggestion.


    Amen ALLAL

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 089
    Par défaut
    Avec le bon vieux TServerSocket et TClientSocket, j'échangeais du binaire, et le hasard pouvait que ces données contiennent ce genre de valeur !
    Je pense que les IdTCPServer et TWSocketServer sont aussi capables de te les fournir, évite juste les fonctions à base de string en XE2, en privilégiant la manipulation de Byte !

    je ne vois pas le rapport avec le CRLF, c'est du TCP\IP, le contenu est libre, c'est la couche applicative qui fournit la compréhension des paquets reçus

    Pour le ENQ, EOT , ACK, NAK, c'est juste des caractères, tu dois pouvoir les recevoir sans soucis !
    ne confonds pas avec la ACK et NAK de la touche TCP\IP qui gère justement la bonne réception des messages (voir les exceptions lors d'un SendMessage)
    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 averti
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2002
    Messages : 45
    Par défaut
    Bonjour ,
    l'instrument que je veux connecter en tcp-ip , envoi un ENQ , de mon coté je ne reçois rein que ce soit avec TIDTcpServer (indy) ou bien avec TWsocket (OverByte), avant en utilisant une connexion rs232 j'avais aucun problème.

    Merci.

  4. #4
    Rédacteur/Modérateur
    Avatar de Andnotor
    Inscrit en
    Septembre 2008
    Messages
    5 937
    Détails du profil
    Informations personnelles :
    Localisation : Autre

    Informations forums :
    Inscription : Septembre 2008
    Messages : 5 937
    Par défaut
    Ce n'est pas simplement en remplaçant une connexion RS232 par une Ethernet que ça va marcher. Tu as bien sûr configuré ton "instrument" pour envoyer les données à une adresse IP sur un port précis ?
    Contrôle également le dialogue à mettre en place. Il paraît surprenant qu'il y ait besoin de ENQ, ACK en TCP...

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    45
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : Algérie

    Informations forums :
    Inscription : Juin 2002
    Messages : 45
    Par défaut
    Oui bien sûr que j'ai configuré l'instrument l'ip + le port de mon serveur tcp-ip , au stade actuelle j’utilise un simulateur ASTM , moi aussi ça m'a paru bizarre la nécessité des ENQ et ACK.

    le dialogue est celui de l'ASTM le protocole d'échange de données standard pour les instruments médicaux. Je vais essayais de voir s'il y a des spécifications de l'ASTM pour le tcp-ip , c'est une piste !

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 089
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    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 : 14 089
    Par défaut
    Ce n'est pas si surprenant pour avoir travailler dans chez fabricant, c'est juste que le protocole n'a pas changé entre le RS232, RS422 ou même en TCP\IP
    A ce que j'ai pu voir chez ce fabricant, lors de l'ajout du TCP\IP, sur la plupart des modèles de carte que l'on fabriquait, c'est un switch physique qui routait la trame vers le RS232 ou vers le RJ45, le code C 16bit du micro-controleur n'avait pas changé
    Pour le code Windows, le code était fouilli, j'ai jamais trouvé où tout cela se faisait !

    Pour ton instrument
    Soit le protocole maison était bien séparé entre le format de trame et le mode de transport, ils ont juste changer la couche transport en conservant le même protocol et tu hérites de ENQ, ACK en TCP... après tout pourquoi changer un code robuste !
    Soit le protocole a été allégé pour le TCP et dans ce cas, tu dois gérer un autre parseur de trame

    D'ailleurs, si le TCP\IP garanti l'échange de données, il ne garanti le bon traitement et la bonne compréhension des données par la couche applicative
    donc il peut être nécessaire d'avoir un échange de ACK\NAK au niveau cohérence des données !
    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

Discussions similaires

  1. [XL-2010] Désactiver le message de contrôle ActiveX
    Par geonosis47 dans le forum Macros et VBA Excel
    Réponses: 4
    Dernier message: 09/07/2014, 21h32
  2. message de contrôle sous seven
    Par cantador dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 28/02/2012, 17h12
  3. Message de contrôle ? comment faire ?
    Par Il_TiRaNNo dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 22/05/2007, 08h48
  4. [C#/VB.Net]Afficher message lorsque souris survole contrôle
    Par guillaume16 dans le forum Windows Forms
    Réponses: 2
    Dernier message: 20/03/2006, 11h44
  5. Réponses: 6
    Dernier message: 11/01/2005, 12h49

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