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 :

[Winsock] Multi transfer


Sujet :

Web & réseau Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    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
    Par défaut [Winsock] Multi transfer
    Bonjours,
    J'ai une petite remarque à propos de la gestion multi transfert en Winsock.

    Comment fonctionne mon system de multi transfer ? :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    Server:
    Demande au client un fichier
    
    Client:
    Reçoit la demande et crée un nouveau thread
    dans ce thread il crée une nouvelle connexion client vers le server
    
    Server:
    Il reçoit la nouvelle connexion et demande authentification
    
    
    Client:
    Il authentifie , maintenant il envoi la taille du fichier.
    
    Server:
    Le server crée un nouveau thread de réception (pour fichiers)
    il reçoit la taille du fichier et peut maintenant travailler avec
    Voici mon petit procède pour la gestion du multi transfert , bon si je transfert disons quelque fichiers en même temps tout se passe bien mais au bout d un certain temps ( surtout si il s'agit d'un gros fichiers ) le Server plante littéralement , et des fois même avant , il plante aléatoirement ...

    Auriez vous une petite idé ?

    Pour la gestion des thread j'utilise les API Win32 tout comme pour les Socket.

    La version des sockets est 2.2 ($0202);
    La famille est AF_INET.

    Merci!

  2. #2
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    Ben là tu décris un principe général qui ne peut que marcher.
    Je te conseille d'installer ICS (bibliothèque de composants IP freew. avec sources) et de regarder l'exemple de serveur TCP livré avec et qui fonctionne parfaitement.

  3. #3
    Membre confirmé
    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
    Par défaut
    mon principe fonctionne très bien, c'est juste qu'au bout d'un certain nombre de téléchargement sa plante .

  4. #4
    Membre Expert Avatar de philnext
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    1 553
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 1 553
    Par défaut
    Oui oui je faisais simplement remarquer qu'on ne peut pas t'aider si tu décris un principe très général et très classique et que tu nous dis "au bout d'un moment ça plante" sans nous indiquer ni message d'erreur ni code.

    Par contre l'idée de partir d'un code (celui d'ICS) bien écrit et fonctionnel te permet d'avoir une bonne base.

  5. #5
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par 0x44-0x43-0x53-0x43 Voir le message
    mon principe fonctionne très bien, c'est juste qu'au bout d'un certain nombre de téléchargement sa plante .
    une seule chose me vient à l'esprit : IsMultiThread := True à ajouter si tu n'utilise pas TThread
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  6. #6
    Membre confirmé
    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
    Par défaut
    c'est quoi exactement le principe de IsMultiThread svp ?

  7. #7
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 56
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par 0x44-0x43-0x53-0x43 Voir le message
    c'est quoi exactement le principe de IsMultiThread svp ?
    le gestionnaire de mémoire de Delphi n'est pas threadsafe par défaut, TThread active cette variable globale afin de le rendre compatible.
    Si tu crées tes thread directement via l'API Win32 tu dois forcer cette variable sous peine d'avoir des plantages aléatoires.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

Discussions similaires

  1. Multi-selection dans une ComboBox ?
    Par Moloko dans le forum MFC
    Réponses: 5
    Dernier message: 07/07/2021, 17h26
  2. Tri multi-threadé
    Par Tifauv' dans le forum C
    Réponses: 8
    Dernier message: 28/06/2007, 09h00
  3. transfer de fichier en utilisant winsock
    Par raggnar dans le forum C
    Réponses: 4
    Dernier message: 16/11/2006, 18h51
  4. API réseau multi plates-formes style Wininet/Winsock
    Par jmmolina dans le forum Développement
    Réponses: 6
    Dernier message: 22/10/2003, 14h31
  5. [Kylix] equivalent winsock avec kylix
    Par Victor dans le forum EDI
    Réponses: 2
    Dernier message: 08/05/2002, 07h43

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