C# 基于udp广播收集局域网类所有设备信息

一个简单好理解的例子,复制过去就能用,能看到效果

首先对功能的思考,他怎么去实现

1.制定udp广播的端口(如果收发用同一个端口就会一直接收到自己给自己广播的消息)

2.启动后向局域网广播约定的字符串(字符串包含了广播端的IP和用来接收响应的端口号)

3.设备需要内置一个功能,打开约定的接收广播端口,持续做好对udp服务端的响应工作,接收广播字符串后解析,向广播端发送自己的IP和自己设备的型号信息(送至:解析到的IP,端口号)

4.广播端接收这个设备发送的字符串,解析生成模型,放进动态的list,方便实时监控

5.循环去广播来进行设备的监测,设备下线后从list移除,就是已经不响应udp服务器的广播了,考虑到udp传输的丢包问题,设备连续5次没有响应,判断为下线

我们需要做两件事,一是广播喊话让局域网内所有听到的设备都要有回应,二是收集他们的回应,所以需要两个程序

一个是喊话的UdpBroadCast,一个是收集的UdpClient

用网络调试助手模拟下位机的设备

收到广播 然后发送自己的信息

接收端收到后判断格式是不是正确,正确在进行下一步处理

创建更多的终端

收到,下位机只需要按规定发送自己的名字就好了,我们是可以拿到发送过来的IP和端口号的

然后把这些存入模型,就得到了一个设备列表模型

约定一个时间去更新模型的设备,然后写入json文件

外部读文件就好了,因为发送端和接收端是一直在运行的

把列表里的设备信息定时存到文件是和外界做一个交互

以上就是C# 基于udp广播收集局域网类所有设备信息的详细内容,更多关于c# 收集设备信息的资料请关注我们其它相关文章!

(0)

相关推荐

  • 基于C#的UDP协议的同步通信实现代码

    一.摘要 总结基于C#的UDP协议的同步通信.  二.实验平台 Visual Studio 2010  三.实验原理 UDP传输协议同TCP传输协议的区别可查阅相关文档,此处不再赘述. 四.实例 4.1 采用socket实现UDP 由于UDP是一种无连接的协议.因此,为了使服务器应用能够发送和接收UDP数据包,则需要做两件事情: (1) 创建一个Socket对象: (2) 将创建的套接字对象与本地IPEndPoint进行绑定. 完成上述步骤后,那么创建的套接字就能够在IPEndPoint上接收流

  • c#实现简单控制台udp异步通信程序示例

    实现客户端发送请求,服务器端响应机制 UDP客户端代码 复制代码 代码如下: using System;using System.Text;using System.Net;using System.Net.Sockets; namespace Client{    class Program    {        //客户端 Socket对象        private static Socket clientSocket;        //服务器端 终点        private

  • C#实现的UDP收发请求工具类实例

    本文实例讲述了C#实现的UDP收发请求工具类.分享给大家供大家参考,具体如下: 初始化: ListeningPort = int.Parse(ConfigurationManager.AppSettings["ListeningPort"]); SendingPort = int.Parse(ConfigurationManager.AppSettings["SendingPort"]); SendingIp = ConfigurationManager.AppSe

  • C# 使用Tcp/Udp协议的示例代码

    所使用的:多线程 委托 Socket 键值队 个人跟着视频做的一个小练习,有兴趣的可以去看一下对于初学者来讲是比较有帮助的 连接:https://www.bilibili.com/video/BV1bZ4y1W74q?p=3&t=358 废话不多说上代码  综合视频中的理解 有什么不对的地方希望大神指点一下 public partial class Form1 : Form { public Form1() { InitializeComponent(); myAddOnlieDelegate

  • C#使用UdpClient类进行简单通信的实例

    UdpClient 类提供了一些简单的方法,用于在阻止同步模式下发送和接收无连接 UDP 数据报. 因为 UDP 是无连接传输协议,所以不需要在发送和接收数据前建立远程主机连接.但您可以选择使用下面两种方法之一来建立默认远程主机: 使用远程主机名和端口号作为参数创建 UdpClient 类的实例. 创建 UdpClient 类的实例,然后调用 Connect 方法. 可以使用在 UdpClient 中提供的任何一种发送方法将数据发送到远程设备. 使用 Receive 方法可以从远程主机接收数据.

  • C#基于UDP进行异步通信的方法

    本文实例讲述了C#基于UDP进行异步通信的方法.分享给大家供大家参考.具体如下: 服务器端: using System; using System.Collections.Generic; using System.Text; using System.Net; using System.Net.Sockets; using System.Threading; namespace AsyncServer { public class UdpState { public UdpClient udp

  • c# socket编程udp客户端实现代码分享

    复制代码 代码如下: Console.WriteLine("This is a Client, host name is {0}", Dns.GetHostName());//设置服务端终结点IPEndPoint ipe = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 8001);//创建与服务端连接的套接字,指定网络类型,数据连接类型和网络协议Socket ConnSocket = new Socket(Address

  • C#中使用UDP通信的示例

    网络通信协议中的UDP通信是无连接通信,客户端在发送数据前无需与服务器端建立连接,即使服务器端不在线也可以发送,但是不能保证服务器端可以收到数据.本文实例即为基于C#实现的UDP通信.具体功能代码如下: 服务器端代码如下 static void Main(string[] args) {   UdpClient client = null;   string receiveString = null;   byte[] receiveData = null;   //实例化一个远程端点,IP和端

  • C#的Socket实现UDP协议通信示例代码

    今天稍花化了一点时间,利用C#的Socket验证了UDP的通信,为接下来特地利用UDP做个分布式的通信仿真系统打下基础.众所周知,UDP 就是用户数据报协议,在互联网参考模型的第四层--传输层.与TCP协议同层,都是提供信息的传输服务,但与TCP最大区别就是,它是一种无连接不可靠的信息传输. 什么是无连接不可靠?直白点讲就是,发送数据的时候,直接把UDP包往网络一扔就完事了,接不接受收到发送的就不理了:接受数据的时候,有发给本地的UDP包就照单全收,收完再看是谁发的.相比TCP,少了握手建立连接

  • C#中使用UDP通信实例

    网络通信协议中的UDP通信是无连接通信,客户端在发送数据前无需与服务器端建立连接,即使服务器端不在线也可以发送,但是不能保证服务器端可以收到数据.本文实例即为基于C#实现的UDP通信.具体功能代码如下: 服务器端代码如下: static void Main(string[] args) { UdpClient client = null; string receiveString = null; byte[] receiveData = null; //实例化一个远程端点,IP和端口可以随意指定

随机推荐