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 :

Serveur TCP/IP Indy bloquant ?


Sujet :

Web & réseau Delphi

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 82
    Points : 40
    Points
    40
    Par défaut Serveur TCP/IP Indy bloquant ?
    Bonjour et merci de lire ce message
    J'essaie d'implanter un server TCP/IP Indy dans une application et ça se passe mal.
    L'activation du serveur est OK.
    La connexion avec Telnet est OK, par contre dès que la connexion est établie, la charge PC passe à 100%, sans qu'aucun transfert de données n'est commencé sur la liaison TCPIP.
    Et comme tout semble bloqué, impossible d'envoyer la déconnexion Telnet. Mon application ne voit pas l'évènement OnDisconnect.
    Je savais que les serveurs Indy était du type 'bloquant' mais quand même pas à ce point là !
    Avez-vous une idée ? (config Win98, PII, Delphi7)
    A+
    Gab

  2. #2
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Quel composant Indy utilises tu ? Un TIdTCPClient ou un TIdTelnetClient ?
    Il me semble avoir vu un message du même type sur les NG Borland.. Il y a je crois actuellement un bug dans la fonction WaitFor qui pousse le CPU à 100%...
    "It's more fun to compute !"

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 82
    Points : 40
    Points
    40
    Par défaut
    J'utilise le composant TCPServer de Indy.
    Gab

  4. #4
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Salut!

    Contrairement à ICS, les composants Indy sont bloquants.
    Cependant, je crois qu'il existe une fonction pour résoudre le problème (freeze)...

    http://delphi.developpez.com/faq/?page=indy_idhttp

    http://www.google.fr/search?q=cache:...=fr&lr=lang_fr

    http://www.phidels.com/php/index.php3?page=../php/pagetelechargementzip.php3&id=496

    Regarde aussi ce topic si tu trouves des éléments de réponse...
    http://www.developpez.net/forums/viewtopic.php?t=96139

    à+
    De retour parmis vous après 10 ans!!

  5. #5
    Membre expérimenté

    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    685
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 685
    Points : 1 608
    Points
    1 608
    Par défaut
    Même avec des sockets bloquants il n'est pas normal que la charge CPU monte à 100%. Regarde le fil de discussion suivant :

    http://newsgroups.borland.com/cgi-bin/dnewsweb?cmd=article&group=borland.public.delphi.internet.winsock&item=62304&utag=

    Sinon, postes un bout de code...
    "It's more fun to compute !"

  6. #6
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Citation Envoyé par Reisubar
    Même avec des sockets bloquants il n'est pas normal que la charge CPU monte à 100%. Regarde le fil de discussion suivant :

    http://newsgroups.borland.com/cgi-bin/dnewsweb?cmd=article&group=borland.public.delphi.internet.winsock&item=62304&utag=

    Sinon, postes un bout de code...
    En général, j'utilise Application.ProcessMessages avec Sleep(100) (100 par exemple) si nécessaire pour débloquer la charge du CPU dans une boucle... Application.ProcessMessages traîte les messages Windows en attente, et Sleep permet de diminuer le nombre d'itération par seconde dans la boucle. Le résultat est que la charge du CPU ne bloque plus à 100%.
    De retour parmis vous après 10 ans!!

  7. #7
    Membre du Club
    Inscrit en
    Novembre 2004
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Novembre 2004
    Messages : 82
    Points : 40
    Points
    40
    Par défaut
    Bonjour et merci pour les réponses
    J'ai trouvé d'où venait le problème.
    Ma procédure OnExecute était pour l'instant vide car je ne faisais que tester les connexions aux clients sans échanges de données.
    Or, au moment de la connexion de Telnet sur mon serveur, Telnet doit probablement envoyer un paquet au client (quoi au juste je ne sais pas) et ce paquet n'était jamais acquitté par mon serveur puisque OnExecute était vide. donc Telnet bouclait sur l'envoi de son paquet et mettait la charge du PC à 100%.
    Il a simplement suffit que je mette un ReadLn dans ma procédure OnExecute pour tout rentre dans l'ordre.
    Merci encore
    Gab

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

Discussions similaires

  1. Indy 10 - Client/Serveur TCP - NOVICE
    Par Cyrille36 dans le forum Web & réseau
    Réponses: 7
    Dernier message: 09/10/2009, 17h11
  2. serveur TCP
    Par dirty_boy dans le forum Développement
    Réponses: 5
    Dernier message: 03/02/2006, 13h03
  3. Client Tcp/ Serveur TCP
    Par Phébus dans le forum Web & réseau
    Réponses: 2
    Dernier message: 21/07/2005, 16h35
  4. client/serveur tcp/ip en c sous unix
    Par oclone dans le forum Développement
    Réponses: 8
    Dernier message: 19/04/2005, 18h55
  5. [Concept]Concept d'un serveur TCP/IP
    Par Zc dans le forum Développement
    Réponses: 8
    Dernier message: 17/01/2003, 17h06

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