C# 基于udp广播收集局域网类所有设备信息
作者:Anna 发布时间:2022-04-28 00:17:23
标签:c#,udp,广播,设备信息,局域网
一个简单好理解的例子,复制过去就能用,能看到效果
首先对功能的思考,他怎么去实现
1.制定udp广播的端口(如果收发用同一个端口就会一直接收到自己给自己广播的消息)
2.启动后向局域网广播约定的字符串(字符串包含了广播端的IP和用来接收响应的端口号)
3.设备需要内置一个功能,打开约定的接收广播端口,持续做好对udp服务端的响应工作,接收广播字符串后解析,向广播端发送自己的IP和自己设备的型号信息(送至:解析到的IP,端口号)
4.广播端接收这个设备发送的字符串,解析生成模型,放进动态的list,方便实时监控
5.循环去广播来进行设备的监测,设备下线后从list移除,就是已经不响应udp服务器的广播了,考虑到udp传输的丢包问题,设备连续5次没有响应,判断为下线
我们需要做两件事,一是广播喊话让局域网内所有听到的设备都要有回应,二是收集他们的回应,所以需要两个程序
一个是喊话的UdpBroadCast,一个是收集的UdpClient
用网络调试助手模拟下位机的设备
收到广播 然后发送自己的信息
接收端收到后判断格式是不是正确,正确在进行下一步处理
创建更多的终端
收到,下位机只需要按规定发送自己的名字就好了,我们是可以拿到发送过来的IP和端口号的
然后把这些存入模型,就得到了一个设备列表模型
约定一个时间去更新模型的设备,然后写入json文件
外部读文件就好了,因为发送端和接收端是一直在运行的
把列表里的设备信息定时存到文件是和外界做一个交互
来源:http://www.uml.org.cn/net/202012162.asp?artid=24033


猜你喜欢
- 输出为MP4需要用到ffmpeg相关的文件,我打包的库已经带了,去官网找的库可以在这个目录找到:2:添加这些引用:3:两个全局变量://用来
- 本文实例讲述了Java Swing中JList选择事件 * ListSelectionListener用法。分享给大家供大家参考,具体如下:
- 我们都知道EditText与TextView是Android的文本输入框和文本显示框,但是基于手机屏幕的大小因素,如果在需要输入较多文字或者
- 本文实例汇总了Java的System.getProperty()方法获取信息的用法。分享给大家供大家参考。具体如下:System.out.p
- Map简介将键映射到值的对象。一个映射不能包含重复的键;每个键最多只能映射到一个值。此接口取代 Dictionary 类,后者完全是一个抽象
- 概要: ShardingSphere是一套开源的分布式数据库中间件解决方案组成的生态圈,它由Sharding-JDBC、Sharding-P
- 本文实例讲述了C#实现多线程下载文件的方法。分享给大家供大家参考。具体实现方法如下:using System;using System.Co
- 1. 编写目的最简单的例子,Springboot整合Redis。2. 详细过程pom 文件添加依赖 <!-- https:
- 有的时候,我们需要对一堆数据进行统计分析后生成HTML或Excel格式报表。本来这并不是一件很难的事,但确是件比较麻烦的事情。最令人头痛的是
- Java读取json数据并存入数据库1. pom依赖<dependency> &nbs
- 一、前言在日常工作中,如果涉及到与第三方进行接口对接,有的会使用WebService的方式,这篇文章主要讲解在.NET Framework中
- 在很多场景中我们需要验证时间日期的是否属于正确的格式,验证时间是否符合常规的。1、验证 yyyy-MM-dd HH:mm:dd 格式的日期S
- public class Change{ public static void main(String args[]){ fin
- 一、背景介绍在微服务都是以HTTP接口的形式暴露自身服务的,因此在调用远程服务时就必须使用HTTP客户端。我们可以使用JDK原生的URLCo
- 想要实现无限轮播,一直向左滑动,当到最后一个view时,会滑动到第一个,无限…可以自己写ViewPager然后加handler先实现自动滚动
- Android使用RecyclerView1. 什么是RecyclerViewRecyclerView 是 Android-support-
- 这里之所以说“浅谈”是因为我这里只是简单的介绍如何使用Visual C#进行图像的读入、保存以及对像素的访问。而不涉及太多的算法。一、读取图
- 更新: 工作中突然想起来,关于Yaml的使用,并不属于Spring的范畴,是org.yaml.snakeyaml处理的。所以yaml的使用应
- Unity3D UGUI Text得分数字增加 代码一、首先在Hierarchy中创建Text,并绑定脚本。using UnityEngin
- 在开发应用程序的时候,经常会遇到这样的情况,会在运行时动态根据条件来决定显示哪个View或某个布局。那么最通常的想法就是把可能用到的View