Parsi Coders
محدود کردن سرعت دانلود - نسخه قابل چاپ

+- Parsi Coders (http://parsicoders.com)
+-- انجمن: Software Development Programming (http://parsicoders.com/forumdisplay.php?fid=37)
+--- انجمن: C# Programming (http://parsicoders.com/forumdisplay.php?fid=55)
+--- موضوع: محدود کردن سرعت دانلود (/showthread.php?tid=2483)

صفحات 1 2


محدود کردن سرعت دانلود - atpf - 06-20-2012

درود عزیزان

کسی میدونه چطوری میتونم سرعت دانلود از اینترنت رو روی کلاینت ها کنترل کنم؟ البته با c#!
rose


RE: محدود کردن سرعت دانلود - Amin_Mansouri - 06-21-2012

درود
بفرمایید:
این سورس بهت کمک میکنه

.zip   MyDownloader_src((www.parsicoders.com).zip (اندازه 470.28 KB / تعداد دانلود: 80)


RE: محدود کردن سرعت دانلود - Kei armin - 06-21-2012

امین فکر کنم می خواد سرعت اینترنت رو کنترل کنه واسه برنامه مدیریت کافی نت ! دانلودر نمی خواد بنویسه !!!


RE: محدود کردن سرعت دانلود - atpf - 06-22-2012

(06-21-2012، 12:24 PM)Amin_Mansouri نوشته: درود
بفرمایید:
این سورس بهت کمک میکنه
درود امین جان
همین طور که دوست عزیزمون آرمین فرمودند من دقیقا می خوام سرعت اینترنتم رو کنترل کنم (محدود کردن پهنای باند).
ببخشید اگه واضح توضیح ندادم. rose


RE: محدود کردن سرعت دانلود - Amin_Mansouri - 06-22-2012

درود
خواهش میکنم دوست عزیز
اون دانلودر Rate دانلود رو میداد تو زمینه کنترل کردن پهنا باند بهت کمک میکنه
سورس زیر هم بهت کمک میکنه:
کد:
Bandwidth throttling in C# windows application
//Apply bandwidth control
                        int uploadLimit = GlobalClass.GetFileUploadLimit();
                        if (uploadLimit > 0)
                        {
                            long bps = uploadLimit * 1024;
                            const int BufferSize = 8192;
                            MemoryStream mstream = new MemoryStream();//Stream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read, BufferSize);
                            // Openup source stream.
                            using (FileStream sourceStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read, BufferSize))
                            {
                                // Create throttled destination stream.
                                ThrottledStream destinationStream = new ThrottledStream(mstream, bps);
                                byte[] buffer = new byte[BufferSize];
                                int readCount = sourceStream.Read(buffer, 0, BufferSize);
                                while (readCount > 0)
                                {
                                    destinationStream.Write(buffer, 0, readCount);
                                    readCount = sourceStream.Read(buffer, 0, BufferSize);
                                    client.FileUpload(Convert.ToInt16(userId), System.IO.Path.GetFileName(fileName), buffer);//Webservice: Here is the problem
                                }
                            }
                        }



RE: محدود کردن سرعت دانلود - atpf - 06-22-2012

(06-22-2012، 04:49 PM)Amin_Mansouri نوشته: درود
خواهش میکنم دوست عزیز
اون دانلودر Rate دانلود رو میداد تو زمینه کنترل کردن پهنا باند بهت کمک میکنه
درود دوست گلم خیلی خیلی ممنونتم.


RE: محدود کردن سرعت دانلود - samadblaj - 08-24-2012

سلام ببخشید چرا این کد خطا میده ، چه چیزایی باید using بشه؟
لطفا راهنماییم کنید خیلی به این کد نیاز دارم.


RE: محدود کردن سرعت دانلود - Kei armin - 08-24-2012

ارور رو بنویسید تا بتونیم راهنمایی کنیم دوست عزیز


RE: محدود کردن سرعت دانلود - samadblaj - 08-24-2012

مرسی از پاسختون:
ببینید من میخوام از هر راهی پهنای باند ( دانلود )سیستم رو محدود کنم باید چیکار کنم؟
خیلی تو سایت های خارجی گشتم متوجه نشدم.

این کد هم کامل نیست خیلی خطا میده؟

کد:
Bandwidth throttling in C# windows application
//Apply bandwidth control
int uploadLimit = GlobalClass.GetFileUploadLimit();
if (uploadLimit > 0)
{
long bps = uploadLimit * 1024;
const int BufferSize = 8192;
MemoryStream mstream = new MemoryStream();//Stream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read, BufferSize);
// Openup source stream.
using (FileStream sourceStream = new FileStream(fileName, FileMode.Open, FileAccess.Read, FileShare.Read, BufferSize))
{
// Create throttled destination stream.
ThrottledStream destinationStream = new ThrottledStream(mstream, bps);
byte[] buffer = new byte[BufferSize];
int readCount = sourceStream.Read(buffer, 0, BufferSize);
while (readCount > 0)
{
destinationStream.Write(buffer, 0, readCount);
readCount = sourceStream.Read(buffer, 0, BufferSize);
client.FileUpload(Convert.ToInt16(userId), System.IO.Path.GetFileName(fileName), buffer);//Webservice: Here is the problem
}
}
}

فایل پیوستی سرعت رو برای دانلود خود برنامه محدود میکنه یا کل سیستم؟
فایل پیوستی دانلود نمیشه با چند تا ابزار دیگه هم امتحان کردم نشد... لطفا اگه میشه روی یک سرور دیگه آپلود کنید.


RE: محدود کردن سرعت دانلود - Amin_Mansouri - 08-25-2012

در کل اگر میخوای اسپید لیمیت کنی

و کنترل کامل داشته باشی برو سراغ نرم افزارهای اکانتینگ

اما یه کم باید وقت بزاری

یه کم نه زیاد

در کل چیزهای که به دردت میخوره:

Basically you wold need to write a ......., route all traffic through the ......., track and calculate each client bandwidth, and start to delay clients that request too much. Unless you have a good reason to write your own, there are ready-made solutions, i.e. Squid (http://serverfault.com/questions/79824/limiting-bandwidth-dynamically-in-squid).



http://www.howtoforge.com/squid-delay-pools-bandwidth-management



اینم یک سورس بیار عالی در این زمینه (با دلفی نوشته شده)


download

این سورس هم به کارت میاد :

http://sourceforge.net/projects/free-sa/files/latest/download?source=files

بدرود