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 :

Problème communication Serveur et Client !


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Ukraine

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 162
    Par défaut Problème communication Serveur et Client !
    Bonjour,
    Grand bug qui se faufile !
    Mon Appli Serveur communique avec des Clients, et normalement (d'après la source) détecte lorsque le client se déconnecte (pour x raison). Et avant tout fonctionnait bien, mais depuis quelques temps, le serveu ne détecte pas ça.
    J'ai testé ça sur un réseaux virtuel, sans succès, et sur un "vrai" physique aussi. Et le serveur (sous Windows7) ne détecte que le client n'est plus là que lorsque l'ordinateur du client (sous windows xp) pendant le redémarrage (après la fin du rechargement de Windows)..

    C'est un peu long comme explication.
    Mais auriez vous une idée ? une piste à suivre ? Je n'ai pas modifié le code du networking, qui avant marchait normalement !

  2. #2
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 094
    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 094
    Par défaut
    Utilise un système de KeepAlive, tu envoies toutes les 5 secondes à tes clients une très petite requête, tu verras très vite lesquels ont été déconnecté violemment (echec du send, en TCP\IP tu as un ACK pour la bonne reception d'une TRAME, et NAK dans le cas contraire)
    C'est un peu le principe de TimeOut !
    En WAN, cela arrive très souvent de ne pas avoir le signal de déconnexion, faut savoir le contourner ...
    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 confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Ukraine

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 162
    Par défaut
    Oui, c'est un bonne idée, mais ça un désavantage, ça risque de surcharger le réseau non ?
    En plus, comment ça se fait qu'avant ça marchait normalement !?!

  4. #4
    Expert éminent
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    14 094
    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 094
    Par défaut
    Cela peut venir du réseau lui-même, une passerelle, un routeur,...
    Pour la surcharge du réseau, si tu envoie une petite trame, (un code + TimeStamp) et idem en retour (tu peux ainsi synchroniser tes horloges), ça ne fait à peine que 10o/s (du moins de données, ça doit faire 100o/s avec les entêtes de protocol)
    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 Expert

    Homme Profil pro
    Étudiant
    Inscrit en
    Juin 2009
    Messages
    935
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 34
    Localisation : France, Aveyron (Midi Pyrénées)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Juin 2009
    Messages : 935
    Par défaut
    Salut

    C'est bien toi qui utilisait les composants IdTCPServer et IdTCPClient ? Dans ce cas, l'évenement OnDisconnect du server te permet de savoir quand un utilisateur se déconnecte. J'utilise ca, et quelque soit la manière dont la personne se déconnecte (proprement ou pas), je n'ai jamais eu de probleme ...

    Sinon, tu n'as qu'a essayer en mettant un serveur et un client sur ta fiche, et en spécifiant comme adresse hote, l'adresse de loopback : 127.0.0.1 . Ainsi, tu verra vite si le probleme vient de ton réseau ou pas ^^

    Bonne chance

  6. #6
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Octobre 2008
    Messages
    162
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 36
    Localisation : Ukraine

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Octobre 2008
    Messages : 162
    Par défaut
    C'est bien toi qui utilisait les composants IdTCPServer et IdTCPClient ?
    Bonjour,
    c'est exact ! Encore moi !
    J'utilise l'évènement OnDisconnect, et avant ça marchait, et maintenant (sans que je mode quoique ce soit) ça ne marche plus, j'ai essayé sous VirtualBox et sur deux vrais réseaux, et ça ne marche pas !

    Je vais tester ce soir la méthode que vous dîtes, mais je n'ai pas bien compris, pouvez m'expliquer le truc !
    - sur la même fiche ?
    - et comment puis-je tester la "chose" ?!
    Merci encore !

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

Discussions similaires

  1. Problème communication serveur client en socket
    Par thejavator dans le forum Entrée/Sortie
    Réponses: 4
    Dernier message: 08/02/2014, 15h08
  2. Communication Serveur- Multi Client via socket
    Par jesuisperdu dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 14/03/2011, 09h37
  3. Problème communication serveur/client avec Socket
    Par Nicolas74 dans le forum Entrée/Sortie
    Réponses: 0
    Dernier message: 03/12/2009, 16h54
  4. Problème communication sockets serveur mutli-client
    Par muad'dib dans le forum Réseau
    Réponses: 5
    Dernier message: 17/05/2007, 02h21
  5. [ServerSocket]Problème communication client-serveur udp sur linux
    Par gdecrouez dans le forum Entrée/Sortie
    Réponses: 2
    Dernier message: 29/09/2006, 14h59

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