当前位置: 首页 > news >正文

C# 广播技术——发现局域网设备技术——

一广播技术应用

  1. 客户端发现与管理:软件可以通过广播消息来发现网络中的客户端,从而方便对客户端进行集中管理和监控。
  2. 服务通知:向所有客户端广播重要的通知、更新或警告信息,确保客户端及时了解相关情况。
  3. 资源共享与分配:广播可用资源的信息,使客户端能够了解并请求所需的资源。
  4. 组通信:在特定的组或网段内进行广播,方便同一组内的客户端之间进行快速的信息交流和协同工作。
  5. 故障检测与恢复:当检测到系统故障或异常时,广播相关信息以通知客户端采取相应的措施,例如切换到备用服务器。
  6. 软件部署与更新:广播软件安装或更新的指令,使得客户端能够及时获取并执行相应的操作

二、代码 

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Data;
using System.Net;
using System.Threading;
using System.Net.Sockets;
using System.IO;namespace 广播客户端
{public partial class Form1 : Form{private System.Windows.Forms.Label label1;private System.Windows.Forms.Button button1;private System.Windows.Forms.Button button2;EndPoint ep;string receiveData;/// <summary>/// 必需的设计器变量。/// </summary>private System.ComponentModel.Container components = null;public Form1(){InitializeComponent();//AcceptMessage(),在未接收广播信息之前,处于阻塞状态,不会生成form//this.Show();AcceptMessage();}private void Form1_Load(object sender, EventArgs e){}/// <summary>/// 清理所有正在使用的资源。/// </summary>protected override void Dispose(bool disposing){if (disposing){if (components != null){components.Dispose();}}base.Dispose(disposing);}//接收信息private void AcceptMessage(){//d定义socket对象Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);IPEndPoint iep = new IPEndPoint(IPAddress.Any, 1207);socket.Bind(iep);ep = (EndPoint)iep;byte[] bytes = new byte[1024];while (true){socket.ReceiveFrom(bytes, ref ep);receiveData = System.Text.Encoding.Unicode.GetString(bytes);receiveData = receiveData.TrimEnd('\u0000');Thread th = new Thread(new ThreadStart(Acc));th.Start();//th.Abort();}socket.Close();}private void Acc(){string message = "来自" + ep.ToString() + "的消息";//DialogResult result = MessageBox.Show(receiveData, message, MessageBoxButtons.AbortRetryIgnore);string ip = ep.ToString();int pos = ip.IndexOf(":");string ip_add = ip.Substring(0, pos);OpenReadWithHttps("http://" + ip_add + ":2324/cyberwinsvr?client=" + GetLocalIP(), "", "GB2312");}/// <summary>/// 获取计算IP/// </summary>/// <returns></returns>///  public static string GetLocalIP(){try{string HostName = Dns.GetHostName(); //得到主机名IPHostEntry IpEntry = Dns.GetHostEntry(HostName);for (int i = 0; i < IpEntry.AddressList.Length; i++){//从IP地址列表中筛选出IPv4类型的IP地址//AddressFamily.InterNetwork表示此IP为IPv4,//AddressFamily.InterNetworkV6表示此地址为IPv6类型if (IpEntry.AddressList[i].AddressFamily == AddressFamily.InterNetwork){return IpEntry.AddressList[i].ToString();}}return "";}catch (Exception ex){// MessageBox.Show("获取本机IP出错:" + ex.Message);return "";}}///<summary>///采用https协议访问网络///</summary>///<param name="URL">url地址</param>///<param name="strPostdata">发送的数据</param>///<returns></returns>private static string OpenReadWithHttps(string URL, string strPostdata, string strEncoding){try{Encoding encoding = Encoding.Default;HttpWebRequest request = (HttpWebRequest)WebRequest.Create(URL);request.Method = "post";request.Accept = "text/html, application/xhtml+xml, */*";request.ContentType = "application/x-www-form-urlencoded";byte[] buffer = encoding.GetBytes(strPostdata);request.ContentLength = buffer.Length;request.GetRequestStream().Write(buffer, 0, buffer.Length);HttpWebResponse response = (HttpWebResponse)request.GetResponse();using (StreamReader reader = new StreamReader(response.GetResponseStream(), System.Text.Encoding.GetEncoding(strEncoding))){return reader.ReadToEnd();}}catch (Exception ex){return "cyber_empty";}}#region Windows 窗体设计器生成的代码/// <summary>/// 设计器支持所需的方法 - 不要使用代码编辑器修改/// 此方法的内容。/// </summary>private void InitializeComponent(){this.label1 = new System.Windows.Forms.Label();this.button1 = new System.Windows.Forms.Button();this.button2 = new System.Windows.Forms.Button();this.SuspendLayout();// // label1// this.label1.BackColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));this.label1.ForeColor = System.Drawing.Color.Black;this.label1.Location = new System.Drawing.Point(0, 8);this.label1.Name = "label1";this.label1.Size = new System.Drawing.Size(424, 23);this.label1.TabIndex = 0;this.label1.Text = "您已经选择了不再接收广播信息,请确认";// // button1// this.button1.BackColor = System.Drawing.Color.Red;this.button1.Location = new System.Drawing.Point(80, 88);this.button1.Name = "button1";this.button1.Size = new System.Drawing.Size(75, 23);this.button1.TabIndex = 1;this.button1.Text = "继续接收";this.button1.UseVisualStyleBackColor = false;this.button1.Click += new System.EventHandler(this.button1_Click);// // button2// this.button2.BackColor = System.Drawing.Color.Red;this.button2.Location = new System.Drawing.Point(240, 88);this.button2.Name = "button2";this.button2.Size = new System.Drawing.Size(75, 23);this.button2.TabIndex = 2;this.button2.Text = "退出系统";this.button2.UseVisualStyleBackColor = false;this.button2.Click += new System.EventHandler(this.button2_Click);// // Form1// this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);this.BackColor = System.Drawing.Color.Blue;this.ClientSize = new System.Drawing.Size(424, 125);this.Controls.Add(this.button2);this.Controls.Add(this.button1);this.Controls.Add(this.label1);this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog;this.MaximizeBox = false;this.MinimizeBox = false;this.Name = "Form1";this.Text = "提示";this.ResumeLayout(false);}#endregionprivate void button1_Click(object sender, EventArgs e){}private void button2_Click(object sender, EventArgs e){}}
}

三、技术支持

扫码,点击可直接领取泳泳馆押金原路返回系统。

相关文章:

C# 广播技术——发现局域网设备技术——

一广播技术应用 客户端发现与管理&#xff1a;软件可以通过广播消息来发现网络中的客户端&#xff0c;从而方便对客户端进行集中管理和监控。服务通知&#xff1a;向所有客户端广播重要的通知、更新或警告信息&#xff0c;确保客户端及时了解相关情况。资源共享与分配&#xf…...

【QA】windows和linux陷入系统调用后有什么区别?

最近被某面试官的这个问题拷打&#xff0c;当场脸烧起来… 首先讲讲系统调用&#xff1a; 系统调用是操作系统为调用者提供服务的接口&#xff0c;以便程序员聚焦于业务问题。分为文件操作&#xff0c;内存分配&#xff0c;进程管理等等。用户使用系统调用后会触发软中断&…...

Github 2024-11-01 开源项目月报 Top19

根据Github Trendings的统计,本月(2024-11-01统计)共有19个项目上榜。根据开发语言中项目的数量,汇总情况如下: 开发语言项目数量Python项目9TypeScript项目3JavaScript项目3Svelte项目1Jupyter Notebook项目1Ruby项目1HTML项目1Rust项目1Java项目1C++项目1Go项目1Python中的…...

Python实现深度学习模型预测控制(tensorflow)DL-MPC(Deep Learning Model Predictive Control

链接&#xff1a;深度学习模型预测控制 &#xff08;如果认为有用&#xff0c;动动小手为我点亮github小星星哦&#xff09;&#xff0c;持续更新中…… 链接&#xff1a;WangXiaoMingo/TensorDL-MPC&#xff1a;DL-MPC&#xff08;深度学习模型预测控制&#xff09;是基于 P…...

Anki插件Export deck to html的改造

在Anki中进行复习时&#xff0c;每次只能打开一条笔记。如果积累了很多笔记&#xff0c;有时候会有将它们集中输出成一个pdf进行阅读的想法。Anki插件Export deck to html&#xff08;安装ID&#xff1a;1897277426&#xff09;就有这个功能。但是&#xff0c;这个插件目前存在…...

csdn 记载文章十分缓慢

现象&#xff1a;其它网站能够正常访问&#xff0c;但只要点击某个 csdn 页面就会等很久 &#xff08;本文只针对 csdn 网页&#xff0c;其他网页出现类似情况可以同样处理&#xff09; 产生这种现象的原因&#xff1a; 这种情况很有可能是在访问 CSDN 主页时&#xff0c;需要向…...

python通过pyperclip库操作剪贴板

pyperclip介绍 pyperclip是一个python库用于操作剪贴板&#xff0c;可以非常方便地将文本复制到剪贴板或从剪贴板获取文本。 通过pip进行安装&#xff1a;pip install pyperclip pyperclip的github地址 pyperclip使用 复制到剪贴板 import pypercliptext "Hello, Wo…...

LSTM——长短期记忆神经网络

目录 1.LSTM 工作原理 2.LSTM的代码实现 3.代码详解 LSTM&#xff08;Long Short-Term Memory&#xff09;是一种特殊的循环神经网络&#xff08;RNN&#xff09;&#xff0c;用于解决长序列中的长期依赖问题。它通过引入门机制&#xff0c;控制信息的流入、保留和输出&…...

10进阶篇:运用第一性原理解答“是什么”类型题目

在667分析题题型中,关于“如何做”和“好处是什么”的题目,许多同学都能较好地运用前述的667作答地图开展答题,但是唯独在“是什么”类型题目(也可以叫做认识型题目),不知从何下手。这种题目通常要求我们理解、分析,并展望未来的发展方向,而结构化、逻辑清晰的答案往往…...

【elkb】索引生命周期管理

索引生命周期管理 Index lifecycle management(索引生命周期管理)是elasticsearch提供的一种用于自动管理索引的生命周期的功能。允许使用者定义索引的各个阶段&#xff0c;从创建至删除。并允许使用者在每个阶段定义索引需要执行的特定动作。这些动作包含索引创建&#xff0c…...

江协科技STM32学习- P25 UART串口协议

&#x1f680;write in front&#x1f680; &#x1f50e;大家好&#xff0c;我是黄桃罐头&#xff0c;希望你看完之后&#xff0c;能对你有所帮助&#xff0c;不足请指正&#xff01;共同学习交流 &#x1f381;欢迎各位→点赞&#x1f44d; 收藏⭐️ 留言&#x1f4dd;​…...

15分钟学 Go 第 22 天:包的使用

第22天&#xff1a;包的使用 欢迎来到Go语言的第22天&#xff01;今天&#xff0c;我们将深入探讨如何创建和使用包。通过学习包的使用&#xff0c;你将能够更好组织你的代码&#xff0c;提高复用性和可维护性。 1. 包的概念 在Go语言中&#xff0c;包是代码的基本组织单位。…...

【Leecode】Leecode刷题之路第35天之搜索插入位置

题目出处 35-搜索插入位置-题目出处 题目描述 个人解法 思路&#xff1a; 1.依次遍历数组&#xff0c;看目标值是否在数组中 2.如果不在&#xff0c;将目标值插入数组&#xff08;涉及到数组移动、扩容&#xff09;&#xff0c;返回下标代码示例&#xff1a;&#xff08;Java…...

速盾:海外cdn高防

随着互联网的快速发展&#xff0c;网站的安全性和稳定性变得越来越重要。尤其是对于大型企业和电商平台来说&#xff0c;保护用户数据和维护网站稳定运行是至关重要的。为了应对日益增长的网络攻击和恶意访问&#xff0c;海外CDN高防服务成为了一种非常受欢迎的解决方案。 首先…...

图书管理系统(JDBC)

AdminUser是管理员类 NormalUser是用户类 AddOperation是增加图书类 BorrowOperation是借书类 DelOperation是删除图书类 ExitOperation是退出类 FindOperation是查找图书类 IOPeration是接口 ReturnOperation是还书类 ShowOperation是显示所有图书类 注意&#xff1a…...

模板初阶及STL简介

目录 一.模板初阶 1.泛型函数 2.函数模板 1.函数模板概念 2.函数模板使用格式 3.函数模板的原理 4.函数模板的实例化 5.模板参数的匹配原则 3.类模板 1.类模板的定义格式 2.类模板的实例化 二.STL简介 1.什么是STL 2.STL的版本 3.STL的六大组件 4.如何学习STL …...

UE5 不同的编译模式下,module的组织形式

由于最近在琢磨UE5.4这个引擎&#xff0c;在学习过程中&#xff0c;碰到了一些非常有意思的事情&#xff0c;我在尝试把之前写的一些底层库搬到UE里面&#xff0c;比如底层库&#xff0c;网络库等等&#xff0c;我通过建立module&#xff0c;将这些库用源代码的方式整合进了UE5…...

【ms-swift 大模型微调实战】

安装环境 pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simplepip install modelscope vllm ‘ms-swift[llm]’ -U 下载模型 modelscope download --model Qwen/Qwen2.5-7B-Instruct --local_dir ./Qwen2.5-7B-Instruct 微调 实验环境&#xff1a;…...

Linux:网络基础

计算机是人的工具&#xff0c;人需要协作&#xff0c;于是有了网络 专用服务器->专用计算机 局域网&#xff1a;随着计算机的数量增加&#xff0c;通过交换机和路由器连接计算机 广域网&#xff1a;将远隔千里的计算机都连在一起 协议 协议就是约定俗成 计算机之间用光信号…...

mysql 的内连接、左连接、右连接有什么区别?

在MySQL中&#xff0c;内连接、左连接和右连接是三种常见的连接类型&#xff0c;它们用于通过共享一个或多个字段的值&#xff0c;将两个或多个表组合在一起进行查询。以下是这三种连接类型的详细区别&#xff1a; 一、内连接&#xff08;INNER JOIN&#xff09; 定义&#x…...

3步突破语言壁垒:Translumo让屏幕内容即时转译

3步突破语言壁垒&#xff1a;Translumo让屏幕内容即时转译 【免费下载链接】Translumo Advanced real-time screen translator for games, hardcoded subtitles in videos, static text and etc. 项目地址: https://gitcode.com/gh_mirrors/tr/Translumo 当你沉浸在一款…...

Bowser插件开发终极指南:如何创建可复用的浏览器检测组件

Bowser插件开发终极指南&#xff1a;如何创建可复用的浏览器检测组件 【免费下载链接】bowser a browser detector 项目地址: https://gitcode.com/gh_mirrors/bo/bowser Bowser是一个轻量级、高性能的浏览器检测库&#xff0c;专门用于识别用户浏览器、操作系统和平台信…...

一篇吃透RNN(循环神经网络),LSTM(长短期记忆网络),BiLSTM(双向长短期记忆网络)算法,计算机小白也能轻松看懂

NLP-AHU-125&#xff08;神秘暗号&#xff09;哈喽各位CSDN的小伙伴们&#xff0c;我是一名专注AI入门干货的大学生博主&#xff5e; 相信刚接触深度学习序列模型的同学&#xff0c;都被RNN、LSTM、BiLSTM这三个“孪生兄弟”绕晕过&#xff1a;明明都是处理序列数据&#xff0c…...

【电池容量提取+锂电池寿命预测】 基于Transformer-BiGRU的锂电池剩余寿命预测Matlab代码(单变量)

✅作者简介&#xff1a;热爱科研的Matlab仿真开发者&#xff0c;擅长毕业设计辅导、数学建模、数据处理、建模仿真、程序设计、完整代码获取、论文复现及科研仿真。&#x1f447; 关注我领取海量matlab电子书和数学建模资料&#x1f34a;个人信条&#xff1a;格物致知,完整Matl…...

Python 3 CGI 编程

Python 3 CGI 编程 引言 随着互联网技术的不断发展,Web应用程序的需求日益增长。Python作为一种功能强大的编程语言,因其简洁的语法和丰富的库支持,在Web开发领域得到了广泛的应用。CGI(Common Gateway Interface,通用网关接口)是一种网络程序,它允许Web服务器执行外部…...

Agent Skill 快速开始

1 Agent Skill的基本概念 用一句简单的话来说的话&#xff0c;Agent Skill就是大模型随时翻阅的说明文档。 Skill 本质上是一个沉淀了自然语言描述 SOP 的 markdown 文件&#xff0c;能够避免重复性劳动&#xff0c;统一能力标准&#xff0c;实现高效且可复用的经验传递。 Sk…...

Jetson Nano 实战:源码编译 PyCUDA 的完整指南与避坑手册

1. 为什么要在Jetson Nano上源码编译PyCUDA&#xff1f; 在嵌入式AI开发领域&#xff0c;Jetson Nano凭借其小巧的体积和强大的GPU计算能力&#xff0c;成为众多开发者的首选设备。PyCUDA作为Python生态中调用CUDA加速的黄金搭档&#xff0c;能让开发者用Python语法轻松实现GP…...

Pixel Epic应用场景:律所用其快速生成法律合规风险分析报告(含引用标注)

Pixel Epic应用场景&#xff1a;律所用其快速生成法律合规风险分析报告&#xff08;含引用标注&#xff09; 1. 法律合规报告生成的新范式 在法律服务领域&#xff0c;合规风险分析报告是律所日常工作中的重要产出。传统方式下&#xff0c;律师需要花费大量时间查阅法规条文、…...

简单工厂、工厂方法、抽象工厂的PHP代码区别?

这三个模式名字很像&#xff0c;但解决的问题层级和代码结构完全不同。 简单工厂 (Simple Factory)&#xff1a;一个类包办所有创建逻辑&#xff08;违反开闭原则&#xff09;。工厂方法 (Factory Method)&#xff1a;每个产品对应一个工厂子类&#xff08;针对一个产品等级&am…...

OmenSuperHub:基于WMI BIOS控制的惠普暗影精灵硬件管理终极指南

OmenSuperHub&#xff1a;基于WMI BIOS控制的惠普暗影精灵硬件管理终极指南 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度&#xff0c;自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub OmenSuperHub是一款专为惠普暗…...