Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/http/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
.net 低优先级http文件传输?_.net_Http - Fatal编程技术网

.net 低优先级http文件传输?

.net 低优先级http文件传输?,.net,http,.net,Http,有没有一种简单的方法来创建文件的低优先级传输?我的服务器上有很多文件,有时我也在传输其他东西。当我的网络繁忙时,有没有一种简单的方法可以让我的应用程序缓慢传输 < P>使用 WebCopy.OpenRead ,并在读取响应的过程中添加一些睡眠。大致如下: using(var client = new WebClient()) using(var input = client.OpenRead("http://whatever.com/myfile.txt")) using(var output

有没有一种简单的方法来创建文件的低优先级传输?我的服务器上有很多文件,有时我也在传输其他东西。当我的网络繁忙时,有没有一种简单的方法可以让我的应用程序缓慢传输

< P>使用<代码> WebCopy.OpenRead ,并在读取响应的过程中添加一些睡眠。大致如下:

using(var client = new WebClient())
using(var input = client.OpenRead("http://whatever.com/myfile.txt"))
using(var output = File.OpenWrite("c:/temp/myfile.txt"))
{
    var length = long.Parse(client.ResponseHeaders["content-length"]);
    var buffer = new byte[32768];
    long totalRead = 0;
    while(totalRead < length)
    {
        int read = input.Read(buffer, 0, buffer.Length);
        if (read != 0)
        {
            output.Write(buffer, 0, read);
            totalRead += read;
        }
        Thread.Sleep(100); // This is what slows down the download, make number bigger to download slower
    }
}           
使用(var client=new WebClient())
使用(var input=client.OpenRead(“http://whatever.com/myfile.txt"))
使用(var output=File.OpenWrite(“c:/temp/myfile.txt”))
{
var length=long.Parse(client.ResponseHeaders[“content length]”);
var buffer=新字节[32768];
长totalRead=0;
while(总读取<长度)
{
int read=input.read(buffer,0,buffer.Length);
如果(读取!=0)
{
输出。写入(缓冲区,0,读取);
totalRead+=读取;
}
Thread.Sleep(100);//这就是减慢下载速度的原因,使数字变大以减慢下载速度
}
}           

<代码> > p>使用代码> WebCopy.OpenRead < /Cord>,并在读取响应的过程中添加一些休眠。大致如下:

using(var client = new WebClient())
using(var input = client.OpenRead("http://whatever.com/myfile.txt"))
using(var output = File.OpenWrite("c:/temp/myfile.txt"))
{
    var length = long.Parse(client.ResponseHeaders["content-length"]);
    var buffer = new byte[32768];
    long totalRead = 0;
    while(totalRead < length)
    {
        int read = input.Read(buffer, 0, buffer.Length);
        if (read != 0)
        {
            output.Write(buffer, 0, read);
            totalRead += read;
        }
        Thread.Sleep(100); // This is what slows down the download, make number bigger to download slower
    }
}           
使用(var client=new WebClient())
使用(var input=client.OpenRead(“http://whatever.com/myfile.txt"))
使用(var output=File.OpenWrite(“c:/temp/myfile.txt”))
{
var length=long.Parse(client.ResponseHeaders[“content length]”);
var buffer=新字节[32768];
长totalRead=0;
while(总读取<长度)
{
int read=input.read(buffer,0,buffer.Length);
如果(读取!=0)
{
输出。写入(缓冲区,0,读取);
totalRead+=读取;
}
Thread.Sleep(100);//这就是减慢下载速度的原因,使数字变大以减慢下载速度
}
}           
退房。下面是一个以低优先级传输的快速示例:

    using (var done = new EventWaitHandle(false, EventResetMode.ManualReset))
    {
        var manager = new Manager();
        var job = manager.CreateJob("Test Job Name");
        var jobevents = new JobEvents();

        job.AddFile(
            @"F:\DEV\TestBITS\TestBITS\dotnetfx35.exe",
            "http://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe");
        job.Priority = JobPriority.Low;
        jobevents.JobTransferred += (sender, e) => { e.Job.Complete(); done.Set(); };
        jobevents.JobError += (sender, e) => { e.Job.Cancel(); done.Set(); };
        jobevents.AddJob(job);
        job.ResumeJob();
        done.WaitOne();
    }
退房。下面是一个以低优先级传输的快速示例:

    using (var done = new EventWaitHandle(false, EventResetMode.ManualReset))
    {
        var manager = new Manager();
        var job = manager.CreateJob("Test Job Name");
        var jobevents = new JobEvents();

        job.AddFile(
            @"F:\DEV\TestBITS\TestBITS\dotnetfx35.exe",
            "http://download.microsoft.com/download/2/0/e/20e90413-712f-438c-988e-fdaa79a8ac3d/dotnetfx35.exe");
        job.Priority = JobPriority.Low;
        jobevents.JobTransferred += (sender, e) => { e.Job.Complete(); done.Set(); };
        jobevents.JobError += (sender, e) => { e.Job.Cancel(); done.Set(); };
        jobevents.AddJob(job);
        job.ResumeJob();
        done.WaitOne();
    }

您使用什么来传输文件?scp?ftp?wget?还有别的工具吗?注意curl有一个--limit rate选项,如果您可以添加一些代码来说明您现在如何进行文件传输,那么它会有所帮助。@sam:
new WebClient().DownloadFile(url,fn)
@ux9i:我用什么对我来说都不重要。也许我会启动一个curl进程你用什么来传输文件?scp?ftp?wget?还有别的工具吗?注意curl有一个--limit rate选项,如果您可以添加一些代码来说明您现在如何进行文件传输,那么它会有所帮助。@sam:
new WebClient().DownloadFile(url,fn)
@ux9i:我用什么对我来说都不重要。也许我会启动一个卷曲过程