Laden...

RTSP Connect

Erstellt von dr4g0n76 vor 18 Jahren Letzter Beitrag vor 13 Jahren 2.262 Views
dr4g0n76 Themenstarter:in
2.921 Beiträge seit 2005
vor 18 Jahren
RTSP Connect

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.

dr4g0n76 Themenstarter:in
2.921 Beiträge seit 2005
vor 18 Jahren

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.

182 Beiträge seit 2007
vor 13 Jahren

ist zwar schon was älter.. aber was schickst du in DescribeCommand über den Socket ?