Dieser Code connected zu einem angegebenen Stream. Z.B. rtsp://irgendwas...
oder http://irgendwas/xsd.ram usw., soweit so gut.
Der Code ist noch ziemlich in Probierform...
und jetzt meine Frage: Wieo dauert das solange bis ich eine Connection bekomme?
Der Mediaplayer und co. bekommen das ja auch alles viel schneller hin...
Folgendes bekomme ich als Antwort wenn connected wurde:
SET_PARAMETER * RTSP/1.0
CSeq: 1
Ping: Pong
{
if (this.TryConnection)
{
if (!IsConnectable)
{
return false;
}
}
Socket connection = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
IPHostEntry ipHostEntry = Dns.Resolve(this.URI.Host);
IPEndPoint ep = new IPEndPoint(ipHostEntry.AddressList[0],this.RemotePort);
int nCount = 0;
connection.Connect(ep);
string sReceived = "";
int nReceiveBytes = 1024;
Byte[] recBytes = new Byte[nReceiveBytes];
string sCommand = this.DescribeCommand+" "+this.URI.ToString();
byte[] buffer = System.Text.Encoding.UTF8.GetBytes(sCommand);
//int nSendBytes = connection.Send(buffer,0,buffer.GetLength(0),SocketFlags.None);
int nSendBytes = this.SendCommand(sCommand,connection);
Debug.WriteLine(string.Format(nSendBytes.ToString()+" Bytes sent: "+sCommand));
do
{
nCount = connection.Receive(recBytes, 0, connection.Available, SocketFlags.None);
sReceived += Encoding.UTF8.GetString(recBytes, 0, nReceiveBytes);
Debug.WriteLine(string.Format("{0} Bytes received!",nCount));
Debug.WriteLine(sReceived);
} while(nCount == nReceiveBytes);
return false;
Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.
Hab das Problem schon längst gefunden, leider nur noch nicht gepostet.
Wenn Connected wurde, gleich über das Socket z.B.
OPTION * RTSP/1.0\r\n\r\n senden,
bei mir hat das zweite \r\n gefehlt. Kleiner Fehler, aber wirkungsvoll!!!
Seit der Erkenntnis, dass der Mensch eine Nachricht ist, erweist sich seine körperliche Existenzform als überflüssig.
ist zwar schon was älter.. aber was schickst du in DescribeCommand über den Socket ?