sbeng
02-04-2012, 14:59
Ciao,
vorrei utilizzare VLC per leggere lo stream dati che provengono da un server C#.
Ecco il codice (copiato di qua e di là):
static void Main(string[] args)
{
TcpListener serverSocket = new TcpListener(80);
int requestCount = 0;
TcpClient clientSocket = default(TcpClient);
serverSocket.Start();
clientSocket = serverSocket.AcceptTcpClient();
requestCount = 0;
FileStream fs = null;
byte[] bytesFrom = null;
try
{
NetworkStream networkStream = clientSocket.GetStream();
fs = new FileStream("C:/test.mp3", FileMode.Open);
bytesFrom = new byte[fs.Length];
fs.Read(bytesFrom, 0, (int)fs.Length);
networkStream.Write(bytesFrom, 0, bytesFrom.Length);
networkStream.Flush();
networkStream.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
clientSocket.Close();
serverSocket.Stop();
Console.WriteLine(" >> exit");
Console.ReadLine();
}
Non capisco perché, dopo l'istruzione Flush, non parte l'esecuzione del brano su VLC (ma anche su MediaPlayer ecc.). Sembra che lo stream di lettura sia "loccato".
Grazie anticipatamente per il supporto.
PS:
Ho provato anche ad utilizzare la tecnica del chunked transfer encoding, provando ad inviare n byte per volta (simulando così lo streaming di Youtube) ma niente.
vorrei utilizzare VLC per leggere lo stream dati che provengono da un server C#.
Ecco il codice (copiato di qua e di là):
static void Main(string[] args)
{
TcpListener serverSocket = new TcpListener(80);
int requestCount = 0;
TcpClient clientSocket = default(TcpClient);
serverSocket.Start();
clientSocket = serverSocket.AcceptTcpClient();
requestCount = 0;
FileStream fs = null;
byte[] bytesFrom = null;
try
{
NetworkStream networkStream = clientSocket.GetStream();
fs = new FileStream("C:/test.mp3", FileMode.Open);
bytesFrom = new byte[fs.Length];
fs.Read(bytesFrom, 0, (int)fs.Length);
networkStream.Write(bytesFrom, 0, bytesFrom.Length);
networkStream.Flush();
networkStream.Close();
}
catch (Exception ex)
{
Console.WriteLine(ex.ToString());
}
clientSocket.Close();
serverSocket.Stop();
Console.WriteLine(" >> exit");
Console.ReadLine();
}
Non capisco perché, dopo l'istruzione Flush, non parte l'esecuzione del brano su VLC (ma anche su MediaPlayer ecc.). Sembra che lo stream di lettura sia "loccato".
Grazie anticipatamente per il supporto.
PS:
Ho provato anche ad utilizzare la tecnica del chunked transfer encoding, provando ad inviare n byte per volta (simulando così lo streaming di Youtube) ma niente.