Limite de winsock

PetrofCZ Messages postés 2 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 2 mars 2008 - 1 mars 2008 à 23:14
PetrofCZ Messages postés 2 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 2 mars 2008 - 2 mars 2008 à 18:25
Bonjour,
J'ai un problem... estce-que je peux limiter la vitesse de telechargement par winsock? Et comment svp?

Merci

2 réponses

cs_Jack Messages postés 14006 Date d'inscription samedi 29 décembre 2001 Statut Modérateur Dernière intervention 28 août 2015 79
1 mars 2008 à 23:25
Salut
Non, ce composant n'a pas de limiteur de débit.
Il va te falloir le concevoir toi même.
Tout dépend de la méthode que tu utilises actuellement pour envoyer les données.
En supposant que tu aies toutes tes données dans une variable chaine "Données".
Si tu veux limter, par exemple, ton débit d'émission à 10 ko/sec, il faudra que tu découpes Données en paquets de 10.000 caractères (10.240 pour les puristes) et que tu expédies un paquet toutes les secondes.
A toi donc d'imaginer un Timer qui tournerait toutes les secondes et qui expédierait ces paquets de données.

Par contre, tu ne peux pas gérer la vitesse de réception, logique puisque les données sont déjà arrivées.

Vala
Jack, MVP VB
NB : Je ne répondrai pas aux messages privés

<hr />Le savoir est la seule matière qui s'accroit quand on la partage (Socrate)
0
PetrofCZ Messages postés 2 Date d'inscription samedi 7 avril 2007 Statut Membre Dernière intervention 2 mars 2008
2 mars 2008 à 18:25
Merci pour la solution, mais je telecharge par http protocol et je ne peux pas changer de config fichiers du web serveur :(.

Je pense que c'est possible, limiter la vitesse (pas trop precisement)
Par exemple, quand un logiciel et en train de telecharger des données et que j'utilise Msgbox(), le telechargement s'arrete. Et il continue quand je clique sur le button "OK". Alors, c'est possible, limier la vitesse. Je peux controler le nombre de données recues en sub Winsock1_DataArrival. Quand ca depasse la limite, j'utilise la fonction api Sleep(miliseconds). Mais cette fonction arrete tout le logiciel - je ne peux pas clicquer sur les boutons, deplacer la fenetre, etc..., et c'est insupportable pour moi. J'ai besoin d'une solution, qui arrete un moment seul le telechargement.

Alors, est-ce qu' il y a quelqu'un qui ait une autre idee?
(je ne veux pas de multithreading)
0
Rejoignez-nous