这个问题必须要记录一下。
首先,说一下,上面交了一个任务:开发一个onvif工具。(具体参考界面直接使用某个客户做好的软件)。。。。。。
在一番折腾之后,终于搭建好了环境,编译了gsoap,现在命令行界面上面把基本的搜索,获取能力,设备信息,ip,编码信息等的都弄好(往上面的编译gsoap版本都太老了,比如说2.8.17,2.8.15,我用的是最新的2.8.96版本的,函数接口参数改变了,然后又改的。。。总之不顺利,后来改完之后发现还行,没有令自己失望),然后直接把代码挪到QT中,刚弄进来的时候报了不知道多少错误,后来一一修复能编译,也能搜索设备,获取信息。在等截面都弄差不多的时候,这个时候能在界面上面显示设备信息了,比较高兴。之后过了几天发现电脑太慢了,于是乎,我保存了一下代码,确认无误之后,就关机了(我用的是windows7),在开机之后,重新跑了一下搜索设备这个功能发现搜不到设备了,原因是soap_recv___wsdd__ProbeMatches返回了-1,我是百思不得其解,很是着急与苦恼,然后我又执行了以下命令行的搜索设备(命令行程序是在虚拟机中ubuntu16.04),可以搜到设备。我就更迷惑了,上网百度搜了一大堆,每个人说法不一样,也没找到解决方法,后来想起来了某位大哥说的关掉防火墙,我看了一下我自己系统防火墙一直都没开过,于是乎pass,又想到某位大哥说的搜索不到设备只能是和网络有关系,我自己电脑又能上网,唉,索性试一下,我把自己电脑的本地连接禁止之后,然后再打开,期间点了几下搜索设备,发现有动静了,只不过就是tcp连接失败而已,再后来又接着点了几下搜索设备,发现又能搜到了。真是感谢那位大哥。在此记录一下
我自己做的onvif工具,还是初期阶段(我不是学美工的,所以目前只做功能):
客户的工具:
环境搭建参照:https://www.cnblogs.com/lcchuguo/p/4594657.html