08-25-2012، 09:31 AM
(08-24-2012، 11:51 PM)samadblaj نوشته: [ -> ]سپاسگزارم از پاسختون:
ببینید من میخوام از هر راهی پهنای باند ( دانلود )سیستم رو محدود کنم باید چیکار کنم؟
خیلی تو سایت های خارجی گشتم متوجه نشدم.
این کد هم کامل نیست خیلی خطا میده؟
کد: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
}
}
}
فایل پیوستی سرعت رو برای دانلود خود برنامه محدود میکنه یا کل سیستم؟
فایل پیوستی دانلود نمیشه با چند تا ابزار دیگه هم امتحان کردم نشد... لطفا اگه میشه روی یک سرور دیگه آپلود کنید.
You can use ThrottledStream in WinForms/WPF application
این سورس هم به زبان سی شارپ هت که کمکت میکنه :-)
[attachment=306]