You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
|
|
|
|
using System.Net;
|
|
|
|
|
|
|
|
|
|
namespace HttpStreamingApp
|
|
|
|
|
{
|
|
|
|
|
internal class Program
|
|
|
|
|
{
|
|
|
|
|
static void Main(string[] args)
|
|
|
|
|
{
|
|
|
|
|
Thread serverThread = new Thread(new ThreadStart(StartServer));
|
|
|
|
|
serverThread.Start();
|
|
|
|
|
Console.WriteLine("HTTP Server start.");
|
|
|
|
|
|
|
|
|
|
Console.ReadKey();
|
|
|
|
|
serverThread.Abort();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
static void StartServer()
|
|
|
|
|
{
|
|
|
|
|
using (var listener = new HttpListener())
|
|
|
|
|
{
|
|
|
|
|
listener.Prefixes.Add("http://127.0.0.1:9879/");
|
|
|
|
|
listener.Start();
|
|
|
|
|
|
|
|
|
|
while (true)
|
|
|
|
|
{
|
|
|
|
|
var context = listener.GetContext();
|
|
|
|
|
var response = context.Response;
|
|
|
|
|
|
|
|
|
|
response.ContentType = "audio/mpeg";
|
|
|
|
|
using (var stream = new FileStream("./audio.mp3", FileMode.Open))
|
|
|
|
|
{
|
|
|
|
|
byte[] buffer = new byte[64 *1024];
|
|
|
|
|
int bytesRead = 0;
|
|
|
|
|
while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)
|
|
|
|
|
{
|
|
|
|
|
response.OutputStream.Write(buffer, 0, bytesRead);
|
|
|
|
|
response.OutputStream.Flush();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
response.Close();
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|