如何与HttpListener一起使用TransmitFile

本文关键字:TransmitFile 一起 HttpListener | 更新日期: 2023-09-27 18:10:41

我使用HttpListener编写了HTTP服务器,并希望使用零复制技术向客户端发送文件。

是否有任何选项使用TransmitFile来响应?

如何与HttpListener一起使用TransmitFile

我想你指的是HttpResponse.TransmitFile ?HttpListener不缓冲响应内容,所以您只需要直接写入输出流。

您可以使用像这样的扩展方法来模拟ASP。网络行为:

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