zoukankan      html  css  js  c++  java
  • c#程序如何从海康ipserver查询获取DVR设备ip地址

    海康威视提供的ipserver可以记录DVR设备的IP地址,并提供一个7071的端口给客户端查询用,我们在c#程序中可以用海康SDK包中的NET_DVR_GetDVRIPByResolveSvr函数来查询,程序中对这个函数的声明为:

            // 通过解析服务器,获取设备的动态IP地址
            [DllImport("HCNetSDK.dll")]
            public static extern bool NET_DVR_GetDVRIPByResolveSvr(string sServerIP, ushort wServerPort, string sDVRName, ushort wDVRNameLen, string sDVRSerialNumber, ushort wDVRSerialLen, IntPtr pGetIP);

    实际调用时对最后的参数 pGetIP要先声明一个IntPtr的变量,并分配一个非托管内存后传入:

                IntPtr ptr = Marshal.AllocHGlobal(32);
     
    函数调用后再从非托管内存中取出内容:

    return Marshal.PtrToStringAnsi(ptr);

    即可获得设备IP地址。

    还要注意参数 ushort wDVRNameLen,如果参数string sDVRName中包含中文,则要计算字节数而不是字数,如一个汉字要算2个字节的长度,如(ushort)(Encoding.Default.GetByteCount(deviceName))。

  • 相关阅读:
    c文件操作库
    双链常用操作2
    双向链表常用操作
    c队列操作
    c日期格式化操作之date
    单链常用操作类
    c字符串常用操作
    双向链表通用类
    c栈操作
    poj2509
  • 原文地址:https://www.cnblogs.com/pzwsoft/p/3529899.html
Copyright © 2011-2022 走看看