TidTCPServer Identifier des app clientes qui se connectent

Signaler
Messages postés
9
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
8 octobre 2009
-
Messages postés
9
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
8 octobre 2009
-
Bonjour à tous,

J'ai créé un serveur de com avec INDY 10. Mon soucis est que je ne vois pas comment identifier une ou plusieurs applications clientes qui se connectent même si elles sont exécutées sur le même poste et plusieurs fois.
Je ne sais pas si je suis très clair ..

Merci d'avance pour vos réponses.

12 réponses

Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
En gros tu voudrais pouvoir les identifier afin de ne pas leur laisser la possibilité de se connecter en plusieurs fois sur le même poste ?

Cordialement, Bacterius !
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
16
Salut,

Regarde ici.
Messages postés
9
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
8 octobre 2009

Merci à vous deux mais ce n'est pas ce que je recherche. J'aurais besoin de savoir dés la connexion(TServerTCP.ServerConnect(AContext: TIdContext)), qui se connecte. Je sais récupérer l'adresse IP avec "AContext.Binding.PeerIP" mais je souhaiterais pouvoir en plus identifier l'application qui se connecte car je peux avoir plusieurs app clientes différentes qui auront donc la même adresse IP.
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
Ca n'a aucun sens, une adresse IP est par définition unique. Si tu veux qu'il y ait plusieurs connexions TCP par poste, alors il faut que les connexions TCP fournissent un attribut de connexion matérialisé par un nombre (genre "1" pour telle chose, "2" pour une autre, ...). Mais en règle générale, une application bien construite ne doit pas gérer plusieurs connexions venant d'un même poste !! Peux-tu détailler ton projet afin de voir s'il ne peut pas se simplifier ?

Cordialement, Bacterius !
Messages postés
9
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
8 octobre 2009

Mon installation se compose ainsi :

- 1 appli "serveur de com" qui dialogue avec une dizaine d'automates
- 1 appli "CONTROLE" qui gère l'ensemble des flux
- des appli "SAISIE" qui permettent l'entrée des produits

Sur la machine principale, tournent "serveur de com" + "CONTROLE" et parfois "SAISIE". Dans ce cas, j'ai besoin d'identifier(je pourrais le faire dans mon protocole mais par curiosité...)l'application qui se connecte au serveur de com autrement que par l'adresse IP qui est forcément identique.
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
Eh bien, tu peux accepter la connexio, demander à l'application d'envoyer un "flag d'identification" (partie du protocole), le traiter, et décider quoi faire après ... et chaque flag aurait une valeur unique pour chaque application ?

Cordialement, Bacterius !
Messages postés
9
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
8 octobre 2009

Effectivement, je pourrais le faire. Je voulais juste savoir s'il était possible d'avoir l'information depuis l'évènement "ServerConnect".
Messages postés
3793
Date d'inscription
samedi 22 décembre 2007
Statut
Membre
Dernière intervention
3 juin 2016
8
C'est la question que je me posais justement, peut-on passer un paramètre à la connexion ? Je ne sais pas ... peut-être dans certains protocoles spécialisés ?

Cordialement, Bacterius !
Messages postés
2527
Date d'inscription
jeudi 15 janvier 2004
Statut
Membre
Dernière intervention
16 octobre 2019
16
Je n'ai peut-être rien compris, mais il ne me semble pas logique de confier au serveur des gestions qui peuvent très bien se faire au niveau client... Ce n'est pas logique et surtout pas performant.

Maintenant, si ce n'est qu'une question de curiosité, c'est un autre problème... ^^
Messages postés
9
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
8 octobre 2009

Merci pour cette dernière réponse qui me semble être très intéressante.
Messages postés
9
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
8 octobre 2009

Encore merci.
Messages postés
9
Date d'inscription
vendredi 17 janvier 2003
Statut
Membre
Dernière intervention
8 octobre 2009

C'est ce que je faisais avec mes anciennes versions avec les TServerSocket et TClientSocket.

Depuis que je prépare la migration avec Delphi9 et les composants INDY10, j'essaie d'optimiser un peu.