如何在HttpListener中使用TransmitFile

时间:2014-06-27 08:32:47

标签: c# httplistener

我使用HttpListener编写HTTP服务器,并希望使用零拷贝技术将文件发送给客户端。

是否有任何选项可以使用TransmitFile进行响应?

1 个答案:

答案 0 :(得分:0)

我认为您指的是HttpResponse.TransmitFile? HttpListener不会缓冲响应内容,因此您只需要直接写入输出流。

您可以使用这样的扩展方法来模仿ASP.NET行为:

public static void TransmitFile(this HttpListenerResponse response, string fileName)
{
    using (var fileStream = File.OpenRead(filename))
    {
        response.ContentLength64 = fileStream.Length;
        fileStream.CopyTo(response.OutputStream);
    }
}