C# 基于udp广播收集局域网类所有设备信息
一个简单好理解的例子,复制过去就能用,能看到效果
首先对功能的思考,他怎么去实现
1.制定udp广播的端口(如果收发用同一个端口就会一直接收到自己给自己广播的消息)
2.启动后向局域网广播约定的字符串(字符串包含了广播端的IP和用来接收响应的端口号)
3.设备需要内置一个功能,打开约定的接收广播端口,持续做好对udp服务端的响应工作,接收广播字符串后解析,向广播端发送自己的IP和自己设备的型号信息(送至:解析到的IP,端口号)
4.广播端接收这个设备发送的字符串,解析生成模型,放进动态的list,方便实时监控
5.循环去广播来进行设备的监测,设备下线后从list移除,就是已经不响应udp服务器的广播了,考虑到udp传输的丢包问题,设备连续5次没有响应,判断为下线
我们需要做两件事,一是广播喊话让局域网内所有听到的设备都要有回应,二是收集他们的回应,所以需要两个程序
一个是喊话的UdpBroadCast,一个是收集的UdpClient
用网络调试助手模拟下位机的设备
收到广播 然后发送自己的信息
接收端收到后判断格式是不是正确,正确在进行下一步处理
创建更多的终端
收到,下位机只需要按规定发送自己的名字就好了,我们是可以拿到发送过来的IP和端口号的
然后把这些存入模型,就得到了一个设备列表模型
约定一个时间去更新模型的设备,然后写入json文件
外部读文件就好了,因为发送端和接收端是一直在运行的
把列表里的设备信息定时存到文件是和外界做一个交互
以上就是C# 基于udp广播收集局域网类所有设备信息的详细内容,更多关于c# 收集设备信息的资料请关注我们其它相关文章!
相关推荐
-
C#使用UdpClient类进行简单通信的实例
UdpClient 类提供了一些简单的方法,用于在阻止同步模式下发送和接收无连接 UDP 数据报. 因为 UDP 是无连接传输协议,所以不需要在发送和接收数据前建立远程主机连接.但您可以选择使用下面两种方法之一来建立默认远程主机: 使用远程主机名和端口号作为参数创建 UdpClient 类的实例. 创建 UdpClient 类的实例,然后调用 Connect 方法. 可以使用在 UdpClient 中提供的任何一种发送方法将数据发送到远程设备. 使用 Receive 方法可以从远程主机接收数据.
-
C#实现的UDP收发请求工具类实例
本文实例讲述了C#实现的UDP收发请求工具类.分享给大家供大家参考,具体如下: 初始化: ListeningPort = int.Parse(ConfigurationManager.AppSettings["ListeningPort"]); SendingPort = int.Parse(ConfigurationManager.AppSettings["SendingPort"]); SendingIp = ConfigurationManager.AppSe
-
C#中使用UDP通信的示例
网络通信协议中的UDP通信是无连接通信,客户端在发送数据前无需与服务器端建立连接,即使服务器端不在线也可以发送,但是不能保证服务器端可以收到数据.本文实例即为基于C#实现的UDP通信.具体功能代码如下: 服务器端代码如下 static void Main(string[] args) { UdpClient client = null; string receiveString = null; byte[] receiveData = null; //实例化一个远程端点,IP和端
-
C# 使用Tcp/Udp协议的示例代码
所使用的:多线程 委托 Socket 键值队 个人跟着视频做的一个小练习,有兴趣的可以去看一下对于初学者来讲是比较有帮助的 连接:https://www.bilibili.com/video/BV1bZ4y1W74q?p=3&t=358 废话不多说上代码 综合视频中的理解 有什么不对的地方希望大神指点一下 public partial class Form1 : Form { public Form1() { InitializeComponent(); myAddOnlieDelegate
-
C#的Socket实现UDP协议通信示例代码
今天稍花化了一点时间,利用C#的Socket验证了UDP的通信,为接下来特地利用UDP做个分布式的通信仿真系统打下基础.众所周知,UDP 就是用户数据报协议,在互联网参考模型的第四层--传输层.与TCP协议同层,都是提供信息的传输服务,但与TCP最大区别就是,它是一种无连接不可靠的信息传输. 什么是无连接不可靠?直白点讲就是,发送数据的时候,直接把UDP包往网络一扔就完事了,接不接受收到发送的就不理了:接受数据的时候,有发给本地的UDP包就照单全收,收完再看是谁发的.相比TCP,少了握手建立连接
-
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#实现简单控制台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协议的同步通信. 二.实验平台 Visual Studio 2010 三.实验原理 UDP传输协议同TCP传输协议的区别可查阅相关文档,此处不再赘述. 四.实例 4.1 采用socket实现UDP 由于UDP是一种无连接的协议.因此,为了使服务器应用能够发送和接收UDP数据包,则需要做两件事情: (1) 创建一个Socket对象: (2) 将创建的套接字对象与本地IPEndPoint进行绑定. 完成上述步骤后,那么创建的套接字就能够在IPEndPoint上接收流
-
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和端口可以随意指定
随机推荐
- cmd批处理中set /a和set /p的区别介绍
- jscript与vbscript 操作XML元素属性的代码
- XML数据库中几个容易混淆的概念
- jQuery使用手册之二 DOM操作
- Vue.js学习之过滤器详解
- iOS中使用URL Scheme进行App跳转的教程
- JavaScript必知必会(三) String .的方法来自何方
- PHP简单获取视频预览图的方法
- PHP脚本的10个技巧(1)
- js is_valid_filename验证文件名的函数
- Python的MongoDB模块PyMongo操作方法集锦
- ASP中set与dim的区别(自己的理解)
- windows下重启mysql的方法
- jQuery实现文本展开收缩特效
- HTML长文本截取含有HTML代码同样适用的两种方法
- JS实战篇之收缩菜单表单布局
- Android开发中ImageView的scaletype属性用法分析
- Spring MVC前后端的数据传输的实现方法
- 浅谈机器学习需要的了解的十大算法
- Sql Server 开窗函数Over()的使用实例详解