Winsock Tcp/ip Vitesse

Envision2 Messages postés 5 Date d'inscription dimanche 13 janvier 2002 Statut Membre Dernière intervention 12 mai 2005 - 8 mai 2005 à 16:57
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 - 12 mai 2005 à 17:48
Bonjour, avec mon programme en tcp/ip je veux controler le débit d'envoie d'un fichier avec ceci:

while(OctetLu == 1024 && ret != 0 && ret != SOCKET_ERROR)
{
vartime = GetTickCount();
ReadFile(File,buffer,1024,&OctetLu,NULL);
ret = send(SockSrv,buffer,
OctetLu,0);
difftime = (GetTickCount()-vartime);

if(1000/Pref.m_UploadSpeedLimit-difftime >0)
Sleep(1000/Pref.m_UploadSpeedLimit-difftime);
}

Mais le problème c'est que sa marche quand on veux limiter en bas de 10k/sec mais par exemple à 50k/sec il limite ça à 32k/sec. Mon verdicle, l'ordi prend du temps pour executer le code. J'ai mis pour tester difftime+8 et sa marche! mais il on tombe avec un ordi plus rapide que 1.6ghz sa doit pas être+8. Quelqu'un peut m'aider ou trouver de quoi d'autre

Merci

3 réponses

minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
9 mai 2005 à 23:03
Juste comme ça, pourquoi ajoute tu 8 précisément ? c'est une valeur a taton ou c'est réfléchi ?

Le CyberMonde nous offre une meilleur qualité de vie
CyberMan.inc The WebSite
0
Envision2 Messages postés 5 Date d'inscription dimanche 13 janvier 2002 Statut Membre Dernière intervention 12 mai 2005
12 mai 2005 à 01:34
c'est une valeur de qu'ai mi pour que sa marche. J'avais mis 10 mais c'était trop, alors 8. Mais c pas de même qui faut faire....
0
minet03 Messages postés 415 Date d'inscription samedi 4 janvier 2003 Statut Membre Dernière intervention 2 décembre 2005 3
12 mai 2005 à 17:48
Je viens justement d'avoir une petite astuces.

Tu calcules le taux d'envoi du paquet, si ce taux d'envoi est supérieur
à celui que tu veux, tu attends un certain temps (à déterminer), puis
tu reprend l'envoi, ainsi la moyenne du taux d'envoi sera celui que tu
cherches.

Bon ok, cette méthode est très complexe à mettre en route...



Ou sinon ton 8, tu le remplace par une variable que tu incrément (ou
décrémente) jusqu'à ce que le taux de transfert soit celui désiré.

Le CyberMonde nous offre une meilleur qualité de vie
["http://cyberman.inc.free.fr" CyberMan.inc The WebSite]
0
Rejoignez-nous