最小的RTSP sample code 测试Cradio获取的网络收音机buffer

最小的RTSP sample code 测试Cradio获取的网络收音机buffer(xxxx)

#include "stdio.h"
//#include <string.h>
#include<conio.h>
#include<winsock2.h>
#include <ws2tcpip.h>
#include <windows.h>
#pragma comment(lib, "ws2_32.lib")


#define  BUF_SZIE      1412
#define  DEBUG  1
/
//Declare
/
unsigned short GetBindPort(SOCKET m_s);
SOCKET CreateUDPSocket();
SOCKET CreateTCPSocket();


/
//define function
/
unsigned short GetBindPort(SOCKET m_s)
{
struct sockaddr_in addrBnd;
int addrlen;
unsigned short m_BindPort;

    addrlen = sizeof(struct sockaddr_in);

getsockname(m_s,(struct sockaddr *)&addrBnd,&addrlen);
m_BindPort = ntohs(addrBnd.sin_port);
return m_BindPort;
}


SOCKET CreateUDPSocket()
{
SOCKET s;
int nRet;
struct sockaddr_in addrBnd;
WSADATA wsd;
if (WSAStartup(MAKEWORD(2,2), &wsd) != 0)
{
printf("WSAStartup failed!\n");
// return ;
}


s = socket(AF_INET, SOCK_DGRAM,0);
if(s == INVALID_SOCKET)
return INVALID_SOCKET;

addrBnd.sin_family = AF_INET;
addrBnd.sin_addr.S_un.S_addr = INADDR_ANY;
addrBnd.sin_port = 0;

nRet = bind(s,(struct sockaddr *)&addrBnd,sizeof(struct sockaddr_in));
if(nRet == SOCKET_ERROR)
{
closesocket(s);
return SOCKET_ERROR;
}
return s;
}
SOCKET CreateTCPSocket()
{
SOCKET s;
  struct sockaddr_in addrBnd;
  int nServAddlen;
  int retVal;  
s = socket(AF_INET, SOCK_STREAM,0);
if(s == INVALID_SOCKET)
return INVALID_SOCKET;


addrBnd.sin_family = AF_INET;
    addrBnd.sin_addr.s_addr  = inet_addr("119.147.104.148");
addrBnd.sin_port = htons(554);
nServAddlen  = sizeof(addrBnd);
 
  retVal=connect(s,(LPSOCKADDR)&addrBnd, sizeof(addrBnd)); 
  if(SOCKET_ERROR == retVal)
  {
// #ifdef DEBUG
       printf("connect failed!\n");
// #endif
  closesocket(s);
  return INVALID_SOCKET;
  }
    else
{
       printf("=============SOCKET ok===========\n"); 
}

return s;
}




 void StreamMain()//int* a
{
   char      buf[BUF_SZIE];//send packet buffer size
   char      buf1[BUF_SZIE*5];//send packet buffer size
   int              retVal;           
   int count = 0;
   unsigned short clientRTPPortNum, clientRTCPPortNum;


   SOCKET s;
   struct sockaddr_in addrto;
   BOOL bsocket;
   
   int i;
   struct timeval UDPtv_timeToDelay;


   char *smsg="this is a test";
   BOOL opt = TRUE;
   int nlen = 0;
   int ret = 0;
   SOCKET tcpm_s;
   SOCKET udpm_s;
   int bytesRead;
   unsigned sum = 0;
   int A;
   int ii;
 
   fd_set  rdfs;
   fd_set  readfds;
   
   WSADATA wsd;
   if (WSAStartup(MAKEWORD(2,2), &wsd) != 0)
   {
  printf("WSAStartup failed!\n");
  return ;
   }
  
   tcpm_s = CreateTCPSocket();
  // udpm_s = CreateUDPSocket();


   printf("C radio\n"); 
   clientRTPPortNum = GetBindPort( udpm_s );
   clientRTCPPortNum = clientRTPPortNum + 1; 
  
   memset(buf,'\0',1000); 
   strcpy(buf, "DESCRIBE rtsp://live.cri.cn/oldies.wsx RTSP/1.0\r\n"\
               "User-Agent: WMPlayer/11.0.5721.5262 guid/3300AD50-2C39-46C0-AE0A-628F3C1EE203\r\n"\
               "Accept: application/sdp\r\n"\
               "Accept-Charset: UTF-8, *;q=0.1\r\n"\
               "Cookie: vjuids=60f10259.13145afd551.0.f0fdaf1a7634; vjlast=1311144687.1311144687.10\r\n"\
               "X-Accept-Authentication: Negotiate, NTLM, Digest, Basic\r\n"\
               "Accept-Language: zh-CN, *;q=0.1\r\n"\
               "CSeq: 1\r\n"\
               "Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, com.microsoft.wm.eosmsg, com.microsoft.wm.predstrm, com.microsoft.wm.startupprofile\r\n\r\n"\
               ); 
    retVal = send(tcpm_s, buf, strlen(buf), 0); 
   if (retVal == -1)
  printf("===========retVal == -1==========\n");
   
   memset(buf1, '\0', BUF_SZIE*5);
   bytesRead = recv(tcpm_s, (char*)buf1, BUF_SZIE*5, 0);
   printf("bytestread:%d   buf:%s\n", bytesRead, buf1);
 
   memset(buf,'\0',1000);
   strcpy((char*)buf,"SETUP rtsp://live.cri.cn/oldies.wsx/rtx RTSP/1.0\r\n"
                        "User-Agent: WMPlayer/11.0.5721.5262 guid/3300AD50-2C39-46C0-AE0A-628F3C1EE203\r\n"
                        "Accept-Charset: UTF-8, *;q=0.1\r\n"
                        "Cookie: vjuids=60f10259.13145afd551.0.f0fdaf1a7634; vjlast=1311144687.1311144687.10\r\n"
                        "X-Accept-Authentication: Negotiate, NTLM, Digest, Basic\r\n"
                        "Accept-Language: zh-CN, *;q=0.1\r\n"
                        "CSeq: 2\r\n"
                        "X-Playlist-Gen-Id: 1960605\r\n"
                        "Transport: RTP/AVP/UDP;unicast;client_port=1690-1691;ssrc=3c7b5050;mode=PLAY\r\n\r\n"
                  );
   memset(buf1, '\0', BUF_SZIE*5);
   retVal = send(tcpm_s, buf, strlen(buf), 0);
   bytesRead = recv(tcpm_s, (char*)buf1, BUF_SZIE*5, 0);
   printf("bytestread2:%d    buf:%s\n",bytesRead, buf1); 
//PGET_PARAMETER
   memset(buf,'\0',1000);
   strcpy((char*)buf,"GET_PARAMETER rtsp://live.cri.cn/oldies.wsx RTSP/1.0\r\n"
                        "Content-Length: 0\r\n"
                        "User-Agent: WMPlayer/11.0.5721.5262 guid/3300AD50-2C39-46C0-AE0A-628F3C1EE203\r\n"
                        "Accept-Charset: UTF-8, *;q=0.1\r\n"
                        "Cookie: vjuids=60f10259.13145afd551.0.f0fdaf1a7634; vjlast=1311144687.1311144687.10\r\n"
                        "X-Accept-Authentication: Negotiate, NTLM, Digest, Basic\r\n"
                        "Accept-Language: zh-CN, *;q=0.1\r\n"
                        "Content-Type: application/x-rtsp-packetpair\r\n"
                        "CSeq: 3\r\n"
                        "Supported: com.microsoft.wm.srvppair, com.microsoft.wm.sswitch, com.microsoft.wm.eosmsg, com.microsoft.wm.predstrm, com.microsoft.wm.startupprofile\r\n\r\n"
                );


   retVal = send(tcpm_s, buf, strlen(buf), 0); 
   memset(buf1, '\0', BUF_SZIE*5);
   bytesRead = recv(tcpm_s, (char*)buf1, BUF_SZIE*5, 0);
   printf(" PGET_PARAMETER bytestread3:%d    buf:%s\n",bytesRead, buf1); 
//SETUP
   memset(buf,'\0',1000);
   strcpy((char*)buf,"SETUP rtsp://live.cri.cn/oldies.wsx/audio RTSP/1.0\r\n"
                        "User-Agent: WMPlayer/11.0.5721.5262 guid/3300AD50-2C39-46C0-AE0A-628F3C1EE203\r\n"
                        "Accept-Charset: UTF-8, *;q=0.1\r\n"
                        "Cookie: vjuids=60f10259.13145afd551.0.f0fdaf1a7634; vjlast=1311144687.1311144687.10\r\n"
                        "X-Accept-Authentication: Negotiate, NTLM, Digest, Basic\r\n"
                        "Accept-Language: zh-CN, *;q=0.1\r\n"
                        "CSeq: 4\r\n"
                        "X-Playlist-Gen-Id: 1960605\r\n"
                        "Transport: RTP/AVP/TCP;unicast;interleaved=0-1;ssrc=8ba1f1f1;mode=PLAY\r\n\r\n"
                );
   retVal = send(tcpm_s, buf, strlen(buf), 0); 
   memset(buf1, '\0', BUF_SZIE*5);
   bytesRead = recv(tcpm_s, (char*)buf1, BUF_SZIE*5, 0);
   printf(" SETUP bytestread4:%d    buf:%s\n",bytesRead, buf1); 


   //PLAY
   memset(buf,'\0',1000);
   strcpy((char*)buf,"PLAY rtsp://live.cri.cn/oldies.wsx RTSP/1.0\r\n"
                        "X-Playlist-Seek-Id: 1960605\r\n"
                        "User-Agent: WMPlayer/11.0.5721.5262 guid/3300AD50-2C39-46C0-AE0A-628F3C1EE203\r\n"
                        "Accept-Charset: UTF-8, *;q=0.1\r\n"
                        "Cookie: vjuids=60f10259.13145afd551.0.f0fdaf1a7634; vjlast=1311144687.1311144687.10\r\n"
                        "X-Accept-Authentication: Negotiate, NTLM, Digest, Basic\r\n"
                        "Accept-Language: zh-cn, *;q=0.1\r\n"
                        "Session: 2603072080947965665\r\n"
                        "CSeq: 5\r\n"
                        "Range: npt=0.000-\r\n"
                        "Bandwidth: 483299\r\n"
                        "X-Accelerate-Streaming: AccelDuration=18000;AccelBandwidth=2147483647\r\n\r\n"
                );
   retVal = send(tcpm_s, buf, strlen(buf), 0); 
   memset(buf1, '\0', BUF_SZIE*5);
   bytesRead = recv(tcpm_s, (char*)buf1, BUF_SZIE*5, 0);
   printf(" PLAY bytestread4:%d    buf:%s\n",bytesRead, buf1);    
   //PLAY
   memset(buf,'\0',1000);
   strcpy((char*)buf,"PLAY rtsp://live.cri.cn/oldies.wsx RTSP/1.0\r\n"
  "X-Playlist-Seek-Id: 1960605\r\n"
  "User-Agent: WMPlayer/11.0.5721.5262 guid/3300AD50-2C39-46C0-AE0A-628F3C1EE203\r\n"
  "Accept-Charset: UTF-8, *;q=0.1\r\n"
  "Cookie: vjuids=60f10259.13145afd551.0.f0fdaf1a7634; vjlast=1311144687.1311144687.10\r\n"
  "X-Accept-Authentication: Negotiate, NTLM, Digest, Basic\r\n"
  "Accept-Language: zh-cn, *;q=0.1\r\n"
  "Session: 2603072080947965665\r\n"
  "CSeq: 5\r\n"
  "Range: npt=0.000-\r\n"
  "Bandwidth: 483299\r\n"
  "X-Accelerate-Streaming: AccelDuration=18000;AccelBandwidth=2147483647\r\n\r\n"
  );
   retVal = send(tcpm_s, buf, strlen(buf), 0); 
   memset(buf1, '\0', BUF_SZIE*5);
   bytesRead = recv(tcpm_s, (char*)buf1, BUF_SZIE*5, 0);
   printf(" PLAY bytestread4:%d    buf:%s\n",bytesRead, buf1); 


   //SET_PARAMETER
   memset(buf,'\0',1000);
   strcpy((char*)buf,"SET_PARAMETER rtsp://live.cri.cn/oldies.wsx RTSP/1.0\r\n"
  "Content-Length: 220\r\n"
  "User-Agent: WMPlayer/11.0.5721.5262 guid/3300AD50-2C39-46C0-AE0A-628F3C1EE203\r\n"
  "Accept-Charset: UTF-8, *;q=0.1\r\n"
  "Cookie: vjuids=60f10259.13145afd551.0.f0fdaf1a7634; vjlast=1311144687.1311144687.10\r\n"
  "X-Accept-Authentication: Negotiate, NTLM, Digest, Basic\r\n"
  "Accept-Language: zh-cn, *;q=0.1\r\n"
  "Session: 2603072080947965665\r\n"
  "Content-Type: application/x-wms-Logconnectstats;charset=UTF-8\r\n"
  "CSeq: 6\r\n\r\n"
  "<XML><Summary></Summary><c-dns>-</c-dns><c-ip>0.0.0.0</c-ip><c-os>Windows_XP</c-os><c-osversion>5.1.0.2600</c-"
       "osversion><date>2012-07-13</date><time>06:01:21</time><c-cpu>Pentium</c-cpu><transport>TCP</transport></XML>\r\n"
  );
   retVal = send(tcpm_s, buf, strlen(buf), 0); 
   memset(buf1, '\0', BUF_SZIE*5);
   bytesRead = recv(tcpm_s, (char*)buf1, BUF_SZIE*5, 0);
   printf(" SET_PARAMETER bytestread5:%d    buf:%s\n",bytesRead, buf1); 


   while (1)
   {
   bytesRead = recv(tcpm_s, (char*)buf1, BUF_SZIE*5, 0);
   }




   return ;
}
 


void main()
{
StreamMain();

}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值