C# 基于udp廣播收集局域網(wǎng)類所有設備信息
一個簡單好理解的例子,復制過去就能用,能看到效果
首先對功能的思考,他怎么去實現(xiàn)
1.制定udp廣播的端口(如果收發(fā)用同一個端口就會一直接收到自己給自己廣播的消息)
2.啟動后向局域網(wǎng)廣播約定的字符串(字符串包含了廣播端的IP和用來接收響應的端口號)
3.設備需要內(nèi)置一個功能,打開約定的接收廣播端口,持續(xù)做好對udp服務端的響應工作,接收廣播字符串后解析,向廣播端發(fā)送自己的IP和自己設備的型號信息(送至:解析到的IP,端口號)
4.廣播端接收這個設備發(fā)送的字符串,解析生成模型,放進動態(tài)的list,方便實時監(jiān)控
5.循環(huán)去廣播來進行設備的監(jiān)測,設備下線后從list移除,就是已經(jīng)不響應udp服務器的廣播了,考慮到udp傳輸?shù)膩G包問題,設備連續(xù)5次沒有響應,判斷為下線
我們需要做兩件事,一是廣播喊話讓局域網(wǎng)內(nèi)所有聽到的設備都要有回應,二是收集他們的回應,所以需要兩個程序
一個是喊話的UdpBroadCast,一個是收集的UdpClient
用網(wǎng)絡調試助手模擬下位機的設備
收到廣播 然后發(fā)送自己的信息
接收端收到后判斷格式是不是正確,正確在進行下一步處理
創(chuàng)建更多的終端
收到,下位機只需要按規(guī)定發(fā)送自己的名字就好了,我們是可以拿到發(fā)送過來的IP和端口號的
然后把這些存入模型,就得到了一個設備列表模型
約定一個時間去更新模型的設備,然后寫入json文件
外部讀文件就好了,因為發(fā)送端和接收端是一直在運行的
把列表里的設備信息定時存到文件是和外界做一個交互
以上就是C# 基于udp廣播收集局域網(wǎng)類所有設備信息的詳細內(nèi)容,更多關于c# 收集設備信息的資料請關注腳本之家其它相關文章!
相關文章
C#實現(xiàn)向數(shù)組指定索引位置插入新的元素值
這篇文章給大家介紹了利用C#實現(xiàn)向數(shù)組指定索引位置插入新的元素值,首先需要定義一個一維數(shù)組,然后修改數(shù)組的長度,從而在其中增加一個元素,需要的朋友可以參考下2024-02-02json格式數(shù)據(jù)分析工具PageElement類分享(仿Session寫法)
json格式數(shù)據(jù)分析工具PageElement類分享,可像Session一樣自由獲取Json元素的Key與Value。并可方便與ADO進行交互2013-12-12C#實現(xiàn)泛型動態(tài)循環(huán)數(shù)組隊列的方法
隊列一種先進先出的數(shù)據(jù)結構,本文通過實例代碼給大家介紹下C#實現(xiàn)泛型動態(tài)循環(huán)數(shù)組隊列的方法,感興趣的朋友一起看看吧2022-01-01