使用海康DS-4004HC板卡网络SDK碰到的难题

本人在使用海康DS-4004HC板卡网络SDK开发监控软件的时候,碰到一个难题,半年多了一直没有解决,恳请有过类似经验的高手帮忙解决

背景:

该监控软件需要对数量不定的机房进行视频监控,每个机房有一台工控机,每台工控机安装有一块DS-4004HC卡,每块卡连接4个摄像机。
工控机上安装有录像机软件,该软件使用海康DS-4004HC板卡网络SDK服务端接口,负责24小时不间断录像,同时进行网络发送。
客户端软件需要24小时不间断循环播放所有机房的4路视频,每次播放一个机房4路视频,维持5-60秒,再自动切换到下一个机房。
客户端软件在长时间运行后(10小时以上),软件崩溃。

问题描述如下:
为了简化问题,我特定写了一个测试用的小程序CCTVPoolTest.exe,作为网络客户端运行在计算机B上;
使用海康的网络服务端Demo,作为网络服务端运行在计算机A上;
A和B同在一个局域网内;
CCTVPoolTest.exe程序需要每隔5-60秒重新连接服务端,时间短没有任何问题,时间过长(通常在10个小时以后)客户端软件容易出现问题:


1.软件进程的句柄数和线程数不断增加,最后客户端软件崩溃(见下图)
使用海康DS-4004HC板卡网络SDK碰到的难题_第1张图片

使用海康DS-4004HC板卡网络SDK碰到的难题_第2张图片
2.软件所用内存不断上升,最后也崩溃了。(如果在B上同时使用其他软件做其他工作,比如IE、QQ等,客户端软件死的更快)


另外:
1.有时候MP4_ClientStart函数抛出内存读写异常
2.客户端代码CCTVPoolTest.exe已经给海康的技术人员看过了,没有任何问题
3.客户端CCTVPoolTest.exe使用.NET开发
4.在连接不同的通道之前和切换之前都用sleep延时,无效果
5.出问题时,MP4_ClientStop函数的执行时间比较长,达到2秒以上
6.出问题后,即使调用MP4_ClientCleanup函数重新再初始化客户端也没有用

7.运行客户端的计算机硬件配置越差,越容易出现问题

8.运行客户端的计算机越忙(比如同时浏览网页、看PDF文档等),越容易出现问题(应该和第7条是同一个原因)


我感觉有两个可能的原因:

1、海康网络SDK本身有问题
2、是.NET的问题(这一点需要使用VC的客户端来测试,如果使用VC客户端不存在此现象,说明是.NET的PInvoke有毛病)

已排除的原因:
1.SDK版本
2.计算机本身

如果有需要CCTVPoolTest.exe源代码的,请留下Email,谢谢关注!

你可能感兴趣的:(.net,网络,测试,文档,email,技术人)