2.9-局域网查找设备的实现代码(支持有虚拟网卡)

一、前言

前面2章分别介绍了“局域网查找设备原理”和“查找局域网设备时候,有虚拟网卡的处理办法”。本章为前2章所提原理的实现代码。使用Qt开发平台和c#winform开发平台分别给出代码实现。

二、使用Qt实现局域网设备查找

  1. 效果图
    在这里插入图片描述
  2. 功能类设计规划
    由于代码比较多,建议阅读源代码。这里仅对代码结构以及类功能设计做介绍,以方便阅读源码。
  • command/crc.h/cpp
    生成与检验CRC校验码
  • command/command.h/cpp
    储存上位机发送给下位的通信的命令,并完成对接收自下位机的命令做校验以及验证
  • device_finding/devicefinder.h/cpp
    具体发送查找设备广播的类,此类设计为被实例化为多个对象,每个对象对应一张电脑上的网卡,分别发送广播并接收对应局域网内下位机设备反馈数据包
  • device_finding/deviceinfo.h/cpp
    用于储存设备信息的类
  • device_finding/protocolfindingdevicemanager.h/cpp
    查找局域网设备功能的对外类,通过此类的对象来使用查找局域网设备功能(在此类中做了多网卡检测)
  • net/comm.h/cpp
    网络通信功能模块的总接口类
  • net/netmanager.h/cpp
    网络通信模块对外访问类,实例化此类用于实现网络通信
  • net/tcpcomm.h/cpp
    网络模块中有关“tcp client”和“tcp server”的实现代码
  • net/udpcomm.h/cpp
    网络模块中有关“udp client”和“udp server”和“udp broadcast”的实现代码
  • ui/device_connect_dialog/devicecommectdialog.h/cpp
    本示例的界面窗口代码
  1. 源代码获取
    点击此链接获取源代码

三、使用C#Winform实现局域网查找设备

  1. 效果图
    在这里插入图片描述
  2. 功能类设计规划
  • Form1.cs
    本示例的界面窗口代码
  • DeviceConnectionManager/CRC16.cs
    生成与检验CRC校验码
  • DeviceConnectionManager/NetDeviceInfo.cs
    用于储存设备信息的类
  • DeviceConnectionManager/Protocol.cs
    储存上位机发送给下位的通信的命令,并完成对接收自下位机的命令做校验以及验证
  • DeviceConnectionManager/NetSearchingDevice/Finder.cs
    具体发送查找设备广播的类,此类设计为被实例化为多个对象,每个对象对应一张电脑上的网卡,分别发送广播并接收对应局域网内下位机设备反馈数据包
  • DeviceConnectionManager/NetSearchingDevice/FoundNetDeviceList.cs
    查找到的下位机设备列表管理类
  • DeviceConnectionManager/NetSearchingDevice/NetSearchingDeviceManager.cs
    查找局域网设备功能的对外类,通过此类的对象来使用查找局域网设备功能(在此类中做了多网卡检测)
  1. 源代码获取
    点击此链接获取源代码
发布了88 篇原创文章 · 获赞 45 · 访问量 20万+

猜你喜欢

转载自blog.csdn.net/robert_cysy/article/details/104595974
今日推荐