Accueil > > > STREAM QUI LIMITE LA BANDE PASSANTE
STREAM QUI LIMITE LA BANDE PASSANTE
Information sur la source
Description
Après quelques longue heures de Google à chercher comment limiter la bande passante d'un flux (ou Stream), je suis tombé sur cette source : http://www.codeproject.com/KB/IP/Bandwidth_thrott ling.aspx Seulement cette classe ne fournis pas un flux constant. Alors je m'en suis inspiré pour en faire une qui lisse un peu plus le débit.
Source
- using System;
- using System.Collections.Generic;
- using System.Text;
- using System.Reflection;
- using System.IO;
-
- namespace MaitreDede.Test
- {
- class Program
- {
- static void Main(string[] args)
- {
- //Paramétrage
- //Chemin vers un gros fichier
- string file = "grosfichier.zip";
- //Bande passante en ko/s
- int bandwidth = 20480;
-
- //On récupére des info et on charge le ficher en mémoire
- //On peut aussi lire directement le fichier à partir du disque
- FileInfo info = new FileInfo(file);
- long size = info.Length;
- FileStream instr = File.OpenRead(file);
-
- byte[] buffer = new byte[size];
- MemoryStream ms = new MemoryStream();
- int read;
- while ((read = instr.Read(buffer, 0, buffer.Length)) > 0)
- {
- ms.Write(buffer, 0, read);
- }
- instr.Close();
- ms.Position = 0;
-
- //On crée le flux
- ThrottleStream str = new ThrottleStream(ms, bandwidth);
-
- //Top Chrono !!!
- TimeSpan start = new TimeSpan(0, 0, 0, 0, Environment.TickCount);
- while (str.Read(buffer, 0, buffer.Length) > 0)
- {
- Console.WriteLine("loop...");
- }
- //Terminé
- TimeSpan stop = new TimeSpan(0, 0, 0, 0, Environment.TickCount);
-
- //Statistiques
- Console.WriteLine("Bande passante : " + bandwidth);
- Console.WriteLine("Taille du fichier : " + size);
- Console.WriteLine("Temps théorique : " + new TimeSpan(0, 0, (int)(size / bandwidth)));
- Console.WriteLine("Durée totale : " + (stop - start));
- }
- }
- }
using System;
using System.Collections.Generic;
using System.Text;
using System.Reflection;
using System.IO;
namespace MaitreDede.Test
{
class Program
{
static void Main(string[] args)
{
//Paramétrage
//Chemin vers un gros fichier
string file = "grosfichier.zip";
//Bande passante en ko/s
int bandwidth = 20480;
//On récupére des info et on charge le ficher en mémoire
//On peut aussi lire directement le fichier à partir du disque
FileInfo info = new FileInfo(file);
long size = info.Length;
FileStream instr = File.OpenRead(file);
byte[] buffer = new byte[size];
MemoryStream ms = new MemoryStream();
int read;
while ((read = instr.Read(buffer, 0, buffer.Length)) > 0)
{
ms.Write(buffer, 0, read);
}
instr.Close();
ms.Position = 0;
//On crée le flux
ThrottleStream str = new ThrottleStream(ms, bandwidth);
//Top Chrono !!!
TimeSpan start = new TimeSpan(0, 0, 0, 0, Environment.TickCount);
while (str.Read(buffer, 0, buffer.Length) > 0)
{
Console.WriteLine("loop...");
}
//Terminé
TimeSpan stop = new TimeSpan(0, 0, 0, 0, Environment.TickCount);
//Statistiques
Console.WriteLine("Bande passante : " + bandwidth);
Console.WriteLine("Taille du fichier : " + size);
Console.WriteLine("Temps théorique : " + new TimeSpan(0, 0, (int)(size / bandwidth)));
Console.WriteLine("Durée totale : " + (stop - start));
}
}
}
Conclusion
Cette métheode n'est qu'une manière de faire parmis tant d'autres...
Sources du même auteur
Sources de la même categorie
Commentaires et avis
Discussions en rapport avec ce code source dans le forum
Gérer le débit d'un flux [ par maitredede ]
Bonjour,J'ai une connexions TCP entre mon appli client (object System.Net.TcpClient) et mon serveur.Ils communiquent en passant par un NetworkStream (
lire un flux xml [ par herve_labenere ]
Bonjour,Je conçois actuellement un petit logiciel pour suivre les cours de la Bourse.J'utilise pour cela un webservice (http://www.webservicex.net/sto
Recevoir un flux video avec activex [ par LePseudoQuiVaBien ]
Bonjour cela fait plusieurs heures que je cherche mais je ne trouve pas. Je dois afficher un flux video venant d'une Camera IP mais je n'arrive pas. j
Compression des flux et StreamReader [ par maitredede ]
Bonjour,Je suis en train de coder une librairie de client/serveur pour un protocole assimilé à telnet. En gros, l'utilisateur se connecte avec telnet
Charger une image haute résolution sur Compact framework / Cropping d'un image stream? [ par charliepben ]
suite de http://www.csharpfr.com/infomsg_CSHARP-PERFORMANCE-PICTUREBOX-DANS-PANEL_455334.aspxBonjour je développe actuellement un application de carto
Serialisation binaire dans un flux mémoire [ par renyone ]
Salut, j'ai l'impression que quelquechose m'échappe et je sollicite donc votre aide.J'ai une méthode de sérialisation binaire dans un flux mémoire de
probléme [ par sharu_a99 ]
bonjour je travaille acutuellement sur un projet qui utilise le plugin de vlc,c'est une application en c# qui permet la diffusion de plusieurs flux vi
Application flux vidéo en C# [ par sharu_a99 ]
bonjourje devloppe actuellement une application web tv en c#,elle a pour role d'afficher un flux video en direct ,j'ai envisagé d'y integrer le mode p
Simuler un flux de données. [ par renyone ]
Salut à tous. Je vous expose ce que je veux faire : j'ai un certain nombre de données en base que je récupère via une certaine API. Une donnée est car
[ C# -> BAR ] axvlc vista flux video [ par bbbbl ]
Bonjour Je ne sais pas is je suis au bon endroit mais j'espere que qlq un pourra me repondre: Je n'arrive pas à faire fonctionner vlc ( flux)!!! J'ai
|
Derniers Blogs
[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES[TECHDAYS 2012] SESSION WEBMATRIX 2 : LE COUTEAU SUISSE GRATUIT POUR VOS DéVELOPPEMENTS WEB - SLIDES par gpommier
Suite à la session que j'ai présenté sur WebMatrix 2, vous pouvez trouver les slides ici, ainsi que les démos en packages nuget : démos1 et démos2 J'en profite pour remercier chaleureusement tous ceux qui sont venus très nombreux à cette sess...
Cliquez pour lire la suite de l'article par gpommier [SHAREPOINT] LES SESSIONS TECHDAYS 2012.[SHAREPOINT] LES SESSIONS TECHDAYS 2012. par Patrick Guimonet
Voici donc pour ceux qui n'ont pas pu venir, ou ceux qui n'ont pas pu toutes les suivre la liste des sessions SharePoint aux TechDays 2012, que je mettrais à jour dès que les liens des vidéo seront disponibles. Ou ici : http...
Cliquez pour lire la suite de l'article par Patrick Guimonet TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3TECHDAYS PARIS 2012 : SESSION PLEINIèRE JOUR 3 par ROMELARD Fabrice
Speaker: Bernard Ourghanlian Cette session est comme chaque jour transmise en live par BrainSonic, et j'ai donc suivi cette troisième pleinière par ce moyen sur mon iPad . Elle est dédiée comme chaque année à la mise en perspective de l'é...
Cliquez pour lire la suite de l'article par ROMELARD Fabrice MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE !MISHRA READER : UN LECTEUR RSS TRèS ZUNE STYLE EN OPEN SOURCE ! par Vko
Hier durant une session dédiée aux Techdays 2012, j'ai eu le plaisir d'annoncer la sortie de la Béta 2 de Mishra Reader. C'est quoi ? Pour les utilisateurs, c'est une vraie expérience de lecture de flux RSS sur Windows. Rien à voir avec les produit...
Cliquez pour lire la suite de l'article par Vko [FRAMEWORK 4] LES TASKS ET LE THREAD UI[FRAMEWORK 4] LES TASKS ET LE THREAD UI par fathi
Je viens de passer quelques temps au TechDay's et j'ai pu voir pas mal de session intéressante. Par contre une chose m'a un peu étonné lors de certaines de ces sessions qui abordaient les améliorations du framework .NET (donc le 4.5) : en gros, bea...
Cliquez pour lire la suite de l'article par fathi
Logiciels
Academy System (17.2.1.0)ACADEMY SYSTEM (17.2.1.0)Logiciel de gestion des établissements.
- élèves/étudiants (inscription, dossier, absence...)
-... Cliquez pour télécharger Academy System Easy-Planning (1.0.0.1)EASY-PLANNING (1.0.0.1)Basé sur les mêmes principes que MyPlanning, Easy-Planning permet de créer des plannings sous la ... Cliquez pour télécharger Easy-Planning COLLECTOR PLUS (3.00B)COLLECTOR PLUS (3.00B)COLLECTOR PLUS version 3.00B est un logiciel utilisant une base de données alimentée par :
- L... Cliquez pour télécharger COLLECTOR PLUS PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO (V7.4)PONAMEDIA TV DEVIENS HELLLOOO FLASH
LA TV SUR VOTRE ORDINATEUR.
Toute une plateforme Multi... Cliquez pour télécharger PONAMEDIA PREMIUM - HELLLOOO FLASH DEMO LettresFaciles 2011 (8.0.0.1)LETTRESFACILES 2011 (8.0.0.1)LettresFaciles est un logiciel facilitant la création et la rédaction de lettres types.
Son inte... Cliquez pour télécharger LettresFaciles 2011
|