下面是一个使用C语言结合curl库编写代码发送RTSP DESCRIBE命令的示例:
#include <stdio.h>
#include <curl/curl.h>
int main() {
CURL *curl;
CURLcode res;
// 初始化libcurl
curl_global_init(CURL_GLOBAL_ALL);
// 创建一个新的CURL对象
curl = curl_easy_init();
if (curl) {
// 设置RTSP URL
curl_easy_setopt(curl, CURLOPT_URL, "rtsp://example.com/ISAPI/Streaming/channels/101");
// 设置RTSP请求类型为DESCRIBE
curl_easy_setopt(curl, CURLOPT_RTSP_REQUEST, CURL_RTSPREQ_DESCRIBE);
// 设置回调函数以接收服务器响应数据
curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fwrite);
// 设置文件指针以保存服务器响应数据
FILE *response_file = fopen("response.txt", "wb");
if (response_file) {
curl_easy_setopt(curl, CURLOPT_WRITEDATA, response_file);
// 执行请求
res = curl_easy_perform(curl);
// 检查请求是否成功
if (res != CURLE_OK) {
fprintf(stderr, "Request failed: %s\n", curl_easy_strerror(res));
}
// 关闭文件指针
fclose(response_file);
} else {
fprintf(stderr, "Failed to open file for writing.\n");
}
// 清理和释放资源
curl_easy_cleanup(curl);
}
// 全局清理
curl_global_cleanup();
return 0;
}
上述代码使用libcurl库发送了一个RTSP DESCRIBE命令,将服务器响应保存在名为”response.txt”的文件中。你可以根据需要自定义URL和文件名,并对服务器响应进行进一步处理。记得在编译时链接curl库,例如使用以下命令进行编译:
gcc -o rtsp_describe_example rtsp_describe_example.c -lcurl
内容由零声教学AI助手提供,问题来源于学员提问