HttpListener导致“指定的网络名称不再可用”错误

时间:2018-12-27 00:46:53

标签: c# stream video-streaming httplistener

我想将视频从服务器发送到客户端,但是当客户端连接“指定的网络名称不再可用”时发生错误。

真正的问题是,当我尝试发送不带内容类型的内容时,它正常工作,并且客户端将视频作为文件格式接收。 但是当我将内容类型指定为“ video / mp4”时,就会发生错误。

这是我的代码:

    static HttpListener _httpListener = new HttpListener();

    private void Button_Click(object sender, RoutedEventArgs e)
    {
        _httpListener.Prefixes.Add("http://localhost:5000/");
        _httpListener.Start(); 
        Response();
    }

    static void Response()
    {
        HttpListenerContext context = _httpListener.GetContext(); 

        context.Response.ContentType = "video/mp4"; 

        using (FileStream video = new FileStream("vid.mp4", FileMode.Open))
        {
            byte[] buffer = new byte[4096];
            while (true)
            {
                int bytesRead = video.Read(buffer, 0, buffer.Length);
                if (bytesRead == 0) break;
                    context.Response.OutputStream.Write(buffer, 0, buffer.Length); 
            }
        }
        context.Response.KeepAlive = false; 
        context.Response.Close();
        Console.WriteLine("Respone given to a request.");
    }

我唯一希望此代码执行的操作是将其作为视频(而不是文件)发送给客户端,以便客户端可以直接在浏览器中观看它。

0 个答案:

没有答案