資源簡介
最簡RTSP客戶端程序 詳細見博客:http://blog.csdn.net/li_wen01/article/details/70260895
代碼片段和文件信息
/*=============================================================================?
#?????FileName:?rtspRequest.c
#?????????Desc:?client?connect?to?RTSP?server
#???????Author:?licaibiao?
#???LastChange:?2017-04-19??
=============================================================================*/?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#include?
#define?MAXBUF?1024
void?Handel_OPTION(char?*inbuffer);
void?Handel_DESCRIBE(char?*inbuffer?int?sockfd);
void?Handel_SETUP(char?*inbuffer?int?sockfd);
void?Handel_PLAY(char?*inbuffer?int?sockfdchar?*sessionId);
void?Handle_PAUSE(char?*inbufferint?sockfd?char?*sessionId);
void?Handel_Teardown(char?*inbuffer?int?sockfdchar?*sessionId);
int???intsearch(char?*?buf?char?*?searchStr?int?len);
int???strsearch(char?*?buf?char?*?searchStr?int?lenchar?*dest);
int???init_udpsocket(int?port?struct?sockaddr_in?*servaddr?char?*mcast_addr);
void??release_udpsocket(int?socket_fd?char?*mcast_addr);
void??proc_udpsocket(int?socket_fd?struct?sockaddr_in?servaddrint?flag);
char?sendOPTRequstStr[]?=?“OPTIONS?rtsp://192.168.0.6:8554/testStream?RTSP/1.0\r\n“;
char?userAgentStr[]?=?“virtual?client?player\r\n“;
char?successfullyReplyStr[]?=?“RTSP/1.0?200?OK\r\n“;
char?sendDESRequstStr[]?=?“DESCRIBE?rtsp://192.168.0.6:8554/testStream?RTSP/1.0\r\n“;
char?sendSETUPRequstStr[]?=?“SETUP?rtsp://192.168.0.6:8554/testStream/track1?RTSP/1.0\r\n“;
char?sendPLAYRequstStr[]?=?“PLAY?rtsp://192.168.0.6:8554/testStream/?RTSP/1.0\r\n“;
char?sendTeardownRequestStr[]=“TEARDOWN?rtsp://192.168.0.6:8554/testStream/?RTSP/1.0\r\n“;
char?sendPauseRequestStr[]=“PAUSE?rtsp://192.168.0.6:8554/testStream/?RTSP/1.0\r\n“;
char?CseqHeadStr[]?=?“Cseq:?“;
char?UserHeadStr[]?=?“User-Agent:?“;
char?ApplicationHeadStr[]?=?“Accept:?“;
char?TransportHeadStr[]?=?“Transport:?“;???????
char?SessionHeadStr[]?=?“Session:?“;???????????
char?RangeHeadStr[]?=?“Range:?“;
int?cseqCount=0;
int?main(int?argc?char?**argv)
{
????int?sockfdrtpsockfdrtcpsockfd?len;
????struct?sockaddr_in?dest;??????
struct?sockaddr_in?RTPAddr;
????struct?sockaddr_in?RTCPAddr;
char?serverIP[]=“192.168.0.6“;
char?mcast_addr[]?=?“232.231.110.2“;?
????char?buffer[MAXBUF?+?1]?=?{0};
int serverPort=8554;
????int?udpPort=0;
????cseqCount=0;
????/*?creat?socket?for?rtsp?*/
????if?((sockfd?=?socket(AF_INET?SOCK_STREAM?0))?0)?{??????
????????perror(“Socket“);
????????exit(errno);
????}
????printf(“socket?created\n“);
????/*?init?server?add?and?port?*/
????bzero(&dest?sizeof(dest));
????dest.sin_family?=?AF_INET;?????
????dest.sin_port???=?htons(serverPort);????
????if?(inet_pton(AF_INET?serverIP?&dest.sin_addr)?0?)?{???????????
????????perror(serverIP);
????????exit(errno);
????}
????printf(“address?created\n“);
????/*?connect?to?server?*/
- 上一篇:最簡 jrtplib 收發數據
- 下一篇:ZigBee智能路燈控制系統
評論
共有 條評論