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++Builder Discussion :

TcpClient Thead Safe


Sujet :

C++Builder

  1. #1
    Membre éclairé Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Par défaut TcpClient Thead Safe
    Bonjours actuellement j'utilise le composant TTcpClient pour faire une communication.

    Je voulais savoir si il existais de rendre ce composant Thread Safe, ou est ce qu'il existe un equivalent qui le soit

    Cordialement Baxter

  2. #2
    Membre très actif Avatar de Argol_Medusa
    Homme Profil pro
    Ingénieur Radiofréquences
    Inscrit en
    Août 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Radiofréquences
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 208
    Par défaut
    Question de novice mais ... qu'appelles-tu thread safe ?

  3. #3
    Membre éclairé Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Par défaut
    Ben que je puisse utiliser les fonctions send receive du TCPclient dans un thread sans risquer de le faire planter

  4. #4
    Membre très actif Avatar de Argol_Medusa
    Homme Profil pro
    Ingénieur Radiofréquences
    Inscrit en
    Août 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Radiofréquences
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 208
    Par défaut
    Je ne vois pas pourquoi le thread planterait en fait.

    Personnellement j'utilise le TCPclient et Tcpserveur dans 2 logiciels et je n'ai jamais eut de problèmes de plantage ( pas encore tout du moins ).

  5. #5
    Membre éclairé Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Par défaut
    Sa peut venir d'une TList le plantage d'un thread ??

  6. #6
    Membre très actif Avatar de Argol_Medusa
    Homme Profil pro
    Ingénieur Radiofréquences
    Inscrit en
    Août 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Radiofréquences
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 208
    Par défaut
    Citation Envoyé par Baxter67 Voir le message
    Sa peut venir d'une TList le plantage d'un thread ??
    Heu oui mais ça peut venir de beaucoup de choses différentes en fait.

    Par plantage du entend quoi exactement ?
    Est-ce que le thread fige ? débordement ? autre ?
    Quel est le message d'erreur ?

  7. #7
    Membre éclairé Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Par défaut
    il se fige
    mais il n'y a pas de message d'erreur

  8. #8
    Membre très actif Avatar de Argol_Medusa
    Homme Profil pro
    Ingénieur Radiofréquences
    Inscrit en
    Août 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Radiofréquences
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 208
    Par défaut
    Citation Envoyé par Baxter67 Voir le message
    il se fige
    mais il n'y a pas de message d'erreur
    Peux-tu poster le code histoire que l'on est plus d'éléments pour t'aider?

    Un truc à tout hasard : la fonction Receive du TCPClient est bloquante : tant que des frames n'ont pas été reçues, tu es figé.

  9. #9
    Membre éclairé Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Par défaut
    il y a un timeout il me semble pour le receive


    une partie du code est poster sur ce topic :

    http://www.developpez.net/forums/d63...antage-thread/

  10. #10
    Membre très actif Avatar de Argol_Medusa
    Homme Profil pro
    Ingénieur Radiofréquences
    Inscrit en
    Août 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Radiofréquences
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 208
    Par défaut
    Je ne sais pas pour le timeout, à priori je ne l'ai jamais utilisé / activé si c'est le cas ( mais je vais regarder car cela peut être intéressant ! )

    Par contre il y a un truc qui me choque, peut-etre à tord à toi de me le dire, c'est que tu fais un :

    Form1->OpenModBusClient->ReceiveBuf(BufferW,20);

    autrement dit tu précises qu'il te faut 20 octets.

    Que se passe-t-il si l'émetteur t'envoie 22 octets par exemple ?
    Tu ne vas en lire que 20 et le coup d'après tu vas te retrouver avec les 2 octets qu'il te reste d'où un problème possible de compréhension par le programme non ?

    Personnellement je faisais comme ça lors de mes premières utilisations du TCPClient et je suis rapidement passé à un Receive avec un très grand nombre d'octet en parametre, il ne remplira pas tout mais au moins tu seras certain d'avoir "libéré le buffer".

    Une cause possible de figeage de ton programme?

  11. #11
    Membre éclairé Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Par défaut
    ben étan donné que je communque avec un automate Télemecanique, les trames qu'il me renvoie sont toujours de la meme taille, mais je vais mettre un buffer beaucoup plus grand par sécurité

  12. #12
    Membre très actif Avatar de Argol_Medusa
    Homme Profil pro
    Ingénieur Radiofréquences
    Inscrit en
    Août 2005
    Messages
    208
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur Radiofréquences
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Août 2005
    Messages : 208
    Par défaut
    On ne sait jamais, j'ai déjà eu des surprises dans des trames sencées être de taille fixe et de temps en temps on a une trame qui sort du lot et qui n'est pas conforme aux spécifications, ce qui fige le truc.

    Tiens moi au courant pour savoir si c'est toujours pareil ou si ça améliore les choses.

  13. #13
    Membre éclairé Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Par défaut
    Citation Envoyé par Argol_Medusa Voir le message
    On ne sait jamais, j'ai déjà eu des surprises dans des trames sencées être de taille fixe et de temps en temps on a une trame qui sort du lot et qui n'est pas conforme aux spécifications, ce qui fige le truc.

    Tiens moi au courant pour savoir si c'est toujours pareil ou si ça améliore les choses.
    bon jai fais cette modif de buffer et jai egalement esseyer de metre la TList en section critique on vera bien

  14. #14
    Membre éclairé Avatar de Baxter67
    Profil pro
    Inscrit en
    Juin 2005
    Messages
    270
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2005
    Messages : 270
    Par défaut
    sa ne change rien, avez vous d'autre idées ??

Discussions similaires

  1. Réponses: 4
    Dernier message: 21/04/2005, 16h07
  2. [Java 5] Réflexion sur les énumérations type-safe
    Par rozwel dans le forum Langage
    Réponses: 5
    Dernier message: 04/12/2004, 20h34
  3. [VS.NET] Problème connection Source safe
    Par Nip dans le forum EDI/Outils
    Réponses: 2
    Dernier message: 24/06/2004, 15h30
  4. [Indy TCPClient] Recupérer le données reçues
    Par fandor7 dans le forum Web & réseau
    Réponses: 8
    Dernier message: 29/06/2003, 21h52
  5. Source Safe -> VC++
    Par Emilio dans le forum MFC
    Réponses: 7
    Dernier message: 07/11/2002, 15h57

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