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