onvif soap接口代码框架的关联
来源:互联网 发布:萧航网络 编辑:程序博客网 时间:2024/06/08 06:15
开始学习onvif.
以下内容参考: http://blog.csdn.net/ghostyu/article/details/8182516 来修改添加的。
服务端与客户端的数据交互采用SOAP协议,音视频流则通过RTP/RTSP进行 。
在生成所需文件后,开始编写程序:
程序包括: 服务器(设备(ipc))、客户端(nvr)。
一个最简单的soap调用的例子:
服务端代码:
- #include "soapH.h"
- #include "add.nsmap"
- int main(int argc, char **argv)
- {
- int m, s;
- struct soap add_soap;
- soap_init(&add_soap);
- soap_set_namespaces(&add_soap, namespaces);
- soap_bind(&add_soap, NULL, atoi(argv[1]), 100); //失败调用soap_print_fault(&add_soap, stderr) 并退出;
- for (;;)
- {
- s = soap_accept(&add_soap); //失败调用soap_print_fault(&add_soap, stderr) 并退出;
- fprintf(stderr, "Socket connection successful: slave socket = %d\n", s);
- soap_serve(&add_soap);
- soap_end(&add_soap);
- }
- }
- int ns2__add(struct soap *add_soap, int num1, int num2, int *sum)
- {
- *sum = num1 + num2;
- return 0;
- }
客户端代码:
- #include <stdio.h>
- #include <stdlib.h>
- #include <string.h>
#include "soapStub.h"
- #include "add.nsmap"
- int main(int argc, char **argv)
- {
- char server[128] = {0};
- int num1;
- int num2;
- int sum;
- strcpy(server,argv[1]);
- num1 = atoi(argv[2]);
- num2 = atoi(argv[3]);
- soap_init(&add_soap);
- soap_set_namespaces(&add_soap, namespaces);
- //这里是soap的soap_call_ns2__add接口关联到服务器上的那个ns2__add接口。
- soap_call_ns2__add(&add_soap, server, NULL, num1, num2, sum);
- soap_end(&add_soap);
- soap_done(&add_soap);
- printf("%d + %d = %d\n", num1, num2, sum);
- }
- struct soap类型的参数,这是soap全局运行环境,所有的函数都第一个包含这个参数
运行服务器:
运行客户端:
发现: 10 + 20 = 30
soap_call_ns2__add 实现了加法(实际是调用了ns2__add)
分析:
ns2__add真正的声明在自动产生的soapStub.h中,然后在自动产生的soapServer.c中被soap_serve_ns2__add()函数调用,
这样,就将真正的加法运算的ns2__add函数和soap代码框架联系了起来。
注:
编译server和client的时候复制了两个文件stdsoap2.h和stdsoap2.c,这里面的soap_init() soap_end()等函数来自他们
实现简图:
阅读全文
0 0
- onvif soap接口代码框架的关联
- onvif代码框架的生成
- Onvif框架代码生成
- Onvif框架代码生成
- Linux下SOAP工具生成ONVIF框架
- Onvif框架代码生成流程
- onvif的soap消息之check
- onvif的soap消息之getcapabilities
- onvif的soap消息之getservice
- onvif的soap消息之getscopes
- onvif的soap消息之getmediacapabilities
- onvif的soap消息之getprofiles
- onvif的soap消息之playvideo
- 带有鉴权字段的onvif框架代码生成
- onvif开发系列之--------onvif 框架代码生成
- onvif学习笔记5:onvif框架代码初步了解
- gSOAP+onvif初探(一):生成onvif代码框架
- 基于CXF框架下的SOAP Webservice服务端接口开发
- 通过API文档查询Math类的方法,打印出近似圆,只要给定不同半径,圆的大小随之发生改变
- 日常问题总结(1)
- 你真的了解UIView吗?
- 在Lua中使用自定义类——tolua++工具使用
- 矩阵乘法优化--poj3318 随机矩阵
- onvif soap接口代码框架的关联
- spark之4:编程指南
- 第三节总结
- MondoDB介绍 Python与MongoDB用法,安装PyMongo
- CF346div2-C题(买玩具)
- TCP的连接和断开
- TFS管理不上新加的的项目
- NYOJ 155-求高精度幂
- 透明状态栏和导航栏的终极解决方案