前言

            之前通过soapcpp2.exe生成Onvif.h文件,这个是接口描述的中间文件,并不参与代码的编写。然后使用wsdl2h.exe生成接口文件

生成文件如下:soapC.cpp soapClient.cpp soapH.h soapServer.cpp soapStub.h wsdd.nsmap文件


编程过程中,还需要用到stdsoap2.cpp stdsoap2.h文件都可以在gsoap-2.8/gsoap目录下找到。作为服务器端开发,soapClient.cpp,soapServer.cpp文件都必须添加到工程目录中


1)如何实现服务器的内部接口,从原理出发

extern "C" SOAP_FMAC5 int SOAP_FMAC6 soap_serve_request(struct soap *soap)函数是所有客户端请求的入口函数,根据客户端的请求类型,例如wsdd:Bye, wsdd:Hello等调用相应的接口,例如,作为服务器,仅仅开发嗅探模块,就需要实现wsdd:Hello, wsdd:Bye, wsdd:probe, wsdd:Resolve等接口。当前通过soap_serve___wsdd__Probe为例子

soap_serve___wsdd__Probe会调用__wsdd__Probe函数实现服务器的基本逻辑。__wsdd__Probe这个函数需要服务器端实现,几乎

soap_serve_request中所有的调用接口都存在一个__wsdd_XX的函数需要服务器实现,否则编译的时候,提示无法找到对应的函数
大概有400个接口,可以通过屏蔽掉多余的接口来节省时间