当前位置: 首页 > 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…...

后进先出(LIFO)详解

LIFO 是 Last In, First Out 的缩写&#xff0c;中文译为后进先出。这是一种数据结构的工作原则&#xff0c;类似于一摞盘子或一叠书本&#xff1a; 最后放进去的元素最先出来 -想象往筒状容器里放盘子&#xff1a; &#xff08;1&#xff09;你放进的最后一个盘子&#xff08…...

LLM基础1_语言模型如何处理文本

基于GitHub项目&#xff1a;https://github.com/datawhalechina/llms-from-scratch-cn 工具介绍 tiktoken&#xff1a;OpenAI开发的专业"分词器" torch&#xff1a;Facebook开发的强力计算引擎&#xff0c;相当于超级计算器 理解词嵌入&#xff1a;给词语画"…...

拉力测试cuda pytorch 把 4070显卡拉满

import torch import timedef stress_test_gpu(matrix_size16384, duration300):"""对GPU进行压力测试&#xff0c;通过持续的矩阵乘法来最大化GPU利用率参数:matrix_size: 矩阵维度大小&#xff0c;增大可提高计算复杂度duration: 测试持续时间&#xff08;秒&…...

Swagger和OpenApi的前世今生

Swagger与OpenAPI的关系演进是API标准化进程中的重要篇章&#xff0c;二者共同塑造了现代RESTful API的开发范式。 本期就扒一扒其技术演进的关键节点与核心逻辑&#xff1a; &#x1f504; 一、起源与初创期&#xff1a;Swagger的诞生&#xff08;2010-2014&#xff09; 核心…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

【Go语言基础【12】】指针:声明、取地址、解引用

文章目录 零、概述&#xff1a;指针 vs. 引用&#xff08;类比其他语言&#xff09;一、指针基础概念二、指针声明与初始化三、指针操作符1. &&#xff1a;取地址&#xff08;拿到内存地址&#xff09;2. *&#xff1a;解引用&#xff08;拿到值&#xff09; 四、空指针&am…...

基于SpringBoot在线拍卖系统的设计和实现

摘 要 随着社会的发展&#xff0c;社会的各行各业都在利用信息化时代的优势。计算机的优势和普及使得各种信息系统的开发成为必需。 在线拍卖系统&#xff0c;主要的模块包括管理员&#xff1b;首页、个人中心、用户管理、商品类型管理、拍卖商品管理、历史竞拍管理、竞拍订单…...

【前端异常】JavaScript错误处理:分析 Uncaught (in promise) error

在前端开发中&#xff0c;JavaScript 异常是不可避免的。随着现代前端应用越来越多地使用异步操作&#xff08;如 Promise、async/await 等&#xff09;&#xff0c;开发者常常会遇到 Uncaught (in promise) error 错误。这个错误是由于未正确处理 Promise 的拒绝&#xff08;r…...

Vue ③-生命周期 || 脚手架

生命周期 思考&#xff1a;什么时候可以发送初始化渲染请求&#xff1f;&#xff08;越早越好&#xff09; 什么时候可以开始操作dom&#xff1f;&#xff08;至少dom得渲染出来&#xff09; Vue生命周期&#xff1a; 一个Vue实例从 创建 到 销毁 的整个过程。 生命周期四个…...

数学建模-滑翔伞伞翼面积的设计,运动状态计算和优化 !

我们考虑滑翔伞的伞翼面积设计问题以及运动状态描述。滑翔伞的性能主要取决于伞翼面积、气动特性以及飞行员的重量。我们的目标是建立数学模型来描述滑翔伞的运动状态,并优化伞翼面积的设计。 一、问题分析 滑翔伞在飞行过程中受到重力、升力和阻力的作用。升力和阻力与伞翼面…...