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 :

Temps incroyablement long lors de la création d'une socket


Sujet :

Web & réseau Delphi

  1. #1
    Membre régulier
    Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2009
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Septembre 2009
    Messages : 168
    Points : 120
    Points
    120
    Par défaut Temps incroyablement long lors de la création d'une socket
    Bonjour,

    tout d'abord je précise mon environnement :

    - Le client est développé sous Delphi 2007
    - Le serveur sous Delphi XE
    - Les données transféré et réceptionné sont en format ANSI
    - J'utilise les API Winsock pour les deux modules

    Mon système de multithreading :

    Pour le Server j'ai un thread principal d'écoute, dés qu'un nouvel utilisateur se connecte je créer un nouveau thread uniquement pour celui-ci , ce thread servira a recevoir tout simplement tu texte cour pas plus de 8KiB max.

    Quand par exemple je transfert un fichier entre le client et le serveur ou vis versa, le client créer un nouveau thread qui lui même va créer une nouvelle connexion au serveur, le serveur reçois donc (dans le thread lsiten) l'ordre de créer un nouveau thread de type transfert de fichier.

    pour résumer je n'utilise pas winsock en asynchrone, mon mutlithreading nécessite une nouvelle connections pour chaque types d'action (transfert de fichiers, capture d'écran etc..)

    Tout cela fonctionne a merveille en locale, WAN sur une machine réel mais si j'utilise mon client et serveur sur deux machines virtuel distinct ça fonctionne moins bien, les connections mettent environ 30 sec a 1 minute pour être établie.

    Je précise mes deux machines virtuelles sont sur Windows 7 x64 et l'autre x86 une est directement branché sur ma clef WIFI (Server) et l'autre en mode bridge.

    Une idée ?

    Merci d'avance

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 657
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    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 : 13 657
    Points : 25 435
    Points
    25 435
    Par défaut
    Que donne le Ping ?
    Que donne Telnet ou PuTTY ?
    Etat du FireWall ?
    Utilise le NetChat fourni en exemple de Delphi pour avoir un serveur TCP\IP minimal !
    Et fait des essais avec Telnet, Putty, NetChat en mode client et enfin ton programme !
    Si tu as comportement similaire, c'est ton OS ou ton réseau ! Test le ailleurs !
    Si tu as un comportement différent, tu as du faire une boulette ! il te faut reprendre tout ton process !

    Tu as utilisé directement les API ?
    TServerSocket (D5), TTCPServer (D7) ou TIdTCPServer (Indy) ?

    Enfin, l'abus de machine virtuelle n'est peut-être pas une bonne idée !
    Cela fonctionne en LAN ou WAN avec des machines réels ?
    Tu te prends juste la tête pour les performances médiocres dans des WM ?

Discussions similaires

  1. Réponses: 11
    Dernier message: 05/08/2009, 12h30
  2. [Oracle10gR2] ORA-00604 lors de la création d'une BDD
    Par Darkdaemons dans le forum Oracle
    Réponses: 9
    Dernier message: 07/11/2006, 10h22
  3. [ImageMagick] Header envoyé lors de la création d'une image
    Par KLiFF dans le forum Bibliothèques et frameworks
    Réponses: 2
    Dernier message: 25/10/2005, 16h35
  4. [DB2]Eurreur lors de la création d'une procédure
    Par uaspecitmoon dans le forum DB2
    Réponses: 1
    Dernier message: 25/05/2005, 19h23
  5. message d'erreur lors de la création d'une base
    Par franculo_caoulene dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/04/2004, 15h47

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