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 :

Application client-server qui se kille toute seule


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut Application client-server qui se kille toute seule
    salut,

    il y a un prob que j'ai eu avec les sockets depuis lontps, mais je n'osais pas posté; maintenant c'est trop soulant :/

    j'ai utilisé 2 sortes de comp :

    - Tclientsocket / Tserversocket
    - TWATCPclient / TWATCPserver

    j'ai eu ce blem avec les 2 !

    je ne sais pas à quelle moment exactement (sans doute lors d'un bug), le server se ferme tout seul (le prob est sur le client) ou le client se ferme tout seul (le prob est sur le server)

    mon appli actuel est un tchat qui utilise TWATCPclient / TWATCPserver

    j'active le server le matin, le soir son process est killé depuix x heures
    je regared sur le client, des gens ont parlé normalement ... donc je ne vois pas d'ou vien le prob

    PERSONNE n'a axx au pc, donc ce n'est pas l'être humain qu kill

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 038
    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 038
    Par défaut
    As-tu des Thread ?
    L'un deux bloque-t-il provoquant un TimeOut de la Connexion ?
    Ayant fait des programmes Tclientsocket / Tserversocket de pilotage de machine, je sais qu'ils fonctionnent au moins 8h sans interruption
    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 éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut
    Citation Envoyé par ShaiLeTroll Voir le message
    As-tu des Thread ?
    L'un deux bloque-t-il provoquant un TimeOut de la Connexion ?
    Ayant fait des programmes Tclientsocket / Tserversocket de pilotage de machine, je sais qu'ils fonctionnent au moins 8h sans interruption
    bin pour un tchat que j'essais de rendre actif, il faudrait que mes socket fonctionnent 24h/24

    et non je n'utilise aucun thread

    c'est juste des clients qui dialogue en passant par le server, basic quoi ...

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 038
    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 038
    Par défaut
    Je sais que notre client laissait parfois tourner le programme plusieurs jours (plus de 72h) sans interruption, nous recommandions un redémarrage toutes les 24 à cause du BDE et de la fragilité des tables Paradox qui après plusieurs dizaines millions (insert, delete, locate, edit, ...) pouvait se voir pulvériser leurs index ...

    avec des TServerSocket, je n'ai pas eu de problème de perte de connexion, tu peux aussi ajouter une sécurité au programme

    Tu ajoute un Timer (ou Thread) qui vérifie la connexion (genre toutes les 5s tu envois un message vide vers un client de test (installé sur la même machine) voire un client intégré au serveur (dès qu'il perd la connexion, tu sais que le serveur à un soucis ...cela fonctionne très bien)

    Idem pour les clients, lorsqu'il envoie un message, si l'envoi échoue, il tente de se reconnecter en boucle et stocke les messages jusqu'à ce que la connexion soit établie ...

    Sinon, tu devrais tenter le thread sur le serveur, ... lancer un thread par client est un peu exagéré, mais tu peux par exemple, dans l'évènement onRead du Server, faire ton ReceiveText (ou Buf), ajouter cela dans une TStringList avec une Section Critique (ou TThreadList), et dans le thread, tu effectue l'analyse du message (tu as je suppose l'ID de l'emetteur, le nom de la cible ou du groupe, ou tous, et le message lui-même), et enfin l'écriture dans le(s) socket(s) correspondant ... ainsi tu peux accumuler des lectures en mémoire (tu vide ainsi le buffer TCP\IP, cela peut éviter des lenteurs voire des pertes même si personnellement, je n'ai jamais constaté de perte de message comme certains ont pu avoir le problème sur le forum), et tu les traites séquentiellement (l'avantage c'est tu peux ainsi lire sur un socket pendant que tu écrit dans l'autre, ...)
    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

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    893
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 893
    Par défaut
    j'utilise now TWATCPclient / TWATCPserver et depuis ce poste, je n'ai pas eu de server killé

    on dirait que le server se kill lorsqu'un client plante ?

  6. #6
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 038
    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 038
    Par défaut
    C'est possible si tu ne vérifie pas le Connected ou si tu n'as pas mis de Try Except autour de fonction sensible pouvant faire planter l'appli ...
    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. Des "=" qui se mettent tout seuls dans une TLisBox
    Par [Silk] dans le forum Langage
    Réponses: 2
    Dernier message: 11/11/2005, 12h35
  2. Formulaire qui se valide tout seul :8O:
    Par Boumeur dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 13/04/2005, 12h21
  3. Avoir un champ qui se decremente tout seul
    Par romeo9423 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 15/02/2005, 04h32
  4. [ContrôleBD] DBCtrlGrid qui se redimensionne tout seul !
    Par LadyWasky dans le forum Composants VCL
    Réponses: 8
    Dernier message: 01/07/2004, 23h08
  5. TCanvas et handle qui se désalloue tout seul
    Par efourmon dans le forum Langage
    Réponses: 3
    Dernier message: 14/01/2004, 11h07

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