begin process at 2012 02 11 10:05:22
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Réseaux & Internet

 > STREAM QUI LIMITE LA BANDE PASSANTE

STREAM QUI LIMITE LA BANDE PASSANTE


 Information sur la source

Note :
Aucune note
Catégorie :Réseaux & Internet Source .NET ( DotNet ) Classé sous :Flux, stream, débit, limite Niveau :Débutant Date de création :24/01/2008 Vu / téléchargé :11 554 / 178

Auteur : maitredede

Ecrire un message privé
Ce membre participe au partage de revenus publicitaires
Commentaire sur cette source (0)
Ajouter un commentaire et/ou une note


 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...

 Fichier Zip

Les Membres Club peuvent télécharger directement un fichier contenu dans le zip sans télécharger le zip en entier !

Télécharger le zip


 Sources du même auteur

Source avec Zip Source .NET (Dotnet) TRAITER UN FOREACH EN PARALLÈLE
Source avec Zip Source .NET (Dotnet) CHATBOX : AFFICHAGE DE TEXTE AVEC SMILEYS
Source avec Zip Source .NET (Dotnet) COUCHE D'ACCÈS AUX DONNÉES SIMPLIFIÉE
Source avec Zip Source .NET (Dotnet) MOTEUR DE PLUGINS AVEC CHARGEMENT/DÉCHARGEMENT

 Sources de la même categorie

Source avec Zip Source avec une capture MODIFIER ADRESSE MAC (WINDOWS) par maxou561
Source avec Zip Source avec une capture FTPROG - CLIENT FTP TRÈS BASIQUE par Jukuso
Source avec Zip Source .NET (Dotnet) WIFIKEYVIEWER : LISTE DES PROFILES WIFI AVEC LEURS CLÉS/MOTS... par ShareVB
Source avec Zip Source .NET (Dotnet) TRANSFERT DE FICHIER par VinceMonkeyz
Source avec Zip Source .NET (Dotnet) NET (SCAN D'URL) par VinceMonkeyz

 Sources en rapport avec celle ci

Source avec Zip Source .NET (Dotnet) LECTEUR DE FLUX RSS2.0/ATOM1.0 AVEC SYSTEM.SERVICEMODEL.SYN... par zakizaki7
Source avec Zip Source .NET (Dotnet) UN RICHTEXTBOX À PARTIR D'UN MEMORYSTREAM par Robert33
Source .NET (Dotnet) CALCUL DU CRC32 A TRAVERS UN SYSTEM.IO.STREAM par Vince_02
Source avec Zip Source avec une capture Source .NET (Dotnet) [.NET2] LECTURE DES FLUX CACHES DANS UN FICHIER D'UN LECTEUR... par Willi
Source .NET (Dotnet) CONTROLER LE FLUX DE DONNEE ENVOYER VERS UNE BASE DE DONNEES par migalo02

Commentaires et avis

Aucun commentaire pour le moment.

 Ajouter un commentaire


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


Nos sponsors


Sondage...

Comparez les prix

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

Photothèque

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 1,139 sec (3)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales