本篇使用环境:

  1. 单播可以播出去
  2. 局域网用 “255.255.255.255”/Broadcast 广播消息播不出去
  3. 前提是关闭了虚拟网卡等一系列用不到的网卡,还是播不出去。关闭路径:“控制面板\所有控制面板项\网络连接”

具体原因看下面的介绍链接吧
直接广播地址和受限广播地址的介绍:https://zhidao.baidu.com/question/79080266.html

受限广播地址:
主机位、网络为全为1(即255):255.255.255.255
用于IP地址请求阶段

直接广播地址:
主机位为1(即255),网络位正常:192.168.1.255
用于子网广播

具体使用方法就是把Broadcast改为直接广播地址:
直接广播地址的C#计算方式如下:
**

广播地址 = 子网掩码按位 求反 再 或 IP地址

**

 public IPAddress IpAddress;public IPAddress SubnetMask;public IPAddress BroadcastIP;void RunFunction(){IpAddress = Dns.GetHostEntry(Dns.GetHostName()).AddressList.Last();SubnetMask = GetSubnetMask(IpAddress);BroadcastIP = GetBroadcast(IpAddress, SubnetMask);}/// <summary> /// 获得广播地址 /// </summary> /// <param name="ipAddress">IP地址</param> /// <param name="subnetMask">子网掩码</param> /// <returns>广播地址</returns> IPAddress GetBroadcast(IPAddress ipAddress, IPAddress subnetMask) {byte[] ipAdd = ipAddress.GetAddressBytes(); byte[] subnet = subnetMask.GetAddressBytes();for (int i = 0; i < ipAdd.Length; i++) { ipAdd[i] = (byte)(~subnet[i] | ipAdd[i]); } return new IPAddress(ipAdd); }/// <summary>/// 获取子网掩码/// </summary>/// <param name="ipAdd">IP地址</param>/// <returns></returns>IPAddress GetSubnetMask(IPAddress ipAdd){foreach (NetworkInterface adapter in NetworkInterface.GetAllNetworkInterfaces()){foreach (UnicastIPAddressInformation unicastIPAddressInformation in adapter.GetIPProperties().UnicastAddresses){if (unicastIPAddressInformation.Address.AddressFamily == AddressFamily.InterNetwork){if (ipAdd.Equals(unicastIPAddressInformation.Address)){return unicastIPAddressInformation.IPv4Mask;}}}}//return IPAddress.Parse("255.255.255.0");throw new ArgumentException($"没有发现该{ipAdd}对应的子网掩码");}

C#/Unity计算局域网广播地址方式相关推荐

  1. 学习编写Unity计算着色器 Learn to Write Unity Compute Shaders

    利用图形处理器的力量 你会学到: 如何编写Unity计算着色器 如何在后处理图像过滤器中使用ComputeShaders 如何使用ComputeShaders进行粒子效果和群集 如何使用Structu ...

  2. 金融系统中正确的金额计算及存储方式

    转载自 金融系统中正确的金额计算及存储方式 经典的精度丢失问题 Java中的类型float.double用来做计算会有精度丢失问题,下面来看下面的示例. public static void main ...

  3. rust 局域网联机_腐蚀怎么进行局域网联机方式 酷跑加速器和你畅玩游戏世界

    到现在,还是有人在玩腐蚀这个游戏,玩的人还很多,小编就是其中一个,那如果要进行搭建rust的局域网联机方式要怎么办呢,大家是不是觉得有点意思呢,接下来就一起看看这个rust局域网的联机方式且腐蚀怎么进 ...

  4. IP地址段计算方法——计算最大广播地址,最小网络地址

    首先说下 IP地址最大位数为32位 然后 分4组 每1组8位:10100000,10101110,10100000,10110000 这里用:  10.174.20.176/24 这个网段做例子 首先 ...

  5. python 量子计算包_ProjectQ:解锁Python实现量子计算的新方式!

    原标题:ProjectQ:解锁Python实现量子计算的新方式! [ ] [IT168 资讯]现在已经有很多软件框架可用于访问量子计算机,本文将要提到的ProjectQ就是其中之一.ProjectQ是 ...

  6. 复刻 Unity编辑器 移动的方式

    复刻 Unity编辑器 移动的方式 第一人称移动 自定义键值补充 代码搭载 老规矩,直接上代码: 第一人称移动 using System.Collections; using System.Colle ...

  7. Java8使用LocalDateTime获取正确的第几周和计算日期最佳方式

    先上问题 public static void main(String[] args) {//使用DateTimeFormatter获取当前周数DateTimeFormatter dateTimeFo ...

  8. Unity控制角色移动方式

    Unity控制角色移动方式* 动态"是游戏最基本的特性之一,游戏只有动起来才能吸引人.今天主要和大家分享一下我平时通过unity控制主角移动的方式. 1 直接更改角色的transform.p ...

  9. Unity使用Gradle打包方式接入Firebase时配置文件google-services.json遇到的坑

    Unity使用Gradle打包方式接入Firebase时配置文件google-services.json遇到的坑 1.unity打包的时候找不到google-services.json 1.首先在ma ...

最新文章

  1. 需求编写的几点经验之谈
  2. Base64的编码规则和C#实现
  3. nodejs中httpserver的安装和使用
  4. android adb 传文件大小,使用adb在电脑和手机间传文件
  5. eeprom的wp 引脚_EEPROM
  6. Python MySQLdb 学习总结
  7. bootstrap在 刷新页面,tab选择页面不会改变。
  8. PTA—念数字(C语言)两种方法
  9. Android build.gradle文件详解(转述自《Android第一行代码》第二版)
  10. Kaldi AMI数据集脚本学习2----run_prepare_shared.sh
  11. html 报文头 参数 详解 本文转载于 http://stephen830.javaeye.com/blog/335578
  12. LitePal(版本1.5.0,写此博客时是最新版本)
  13. matlab besselh,关于用matlab求bessel函数零点
  14. 详解Java编码与解码以及常见的编码表,灵活处理乱码问题
  15. php 邮箱反垃圾机制,企业邮箱中的反垃圾邮件规则
  16. 查杀病毒实战----------------》ddg.223 and AnXQV
  17. Selenium显示等待和隐式等待
  18. 华为RH2288H V3服务器raid配置
  19. 文章还需自己写,论文抄袭误国家
  20. Ubuntu系统镜像盘ISO:各版本大全、国内网速下载地址(阿里云)

热门文章

  1. mysql-58同城30条军规
  2. [软件工程] 软件工程概念
  3. [转载] JQData | 股市估值分析,带你穿越资本市场迷雾
  4. python中objects_django的objects怎么调用
  5. 国内的PMP证书含金量到底如何
  6. 能升职加薪?PMP证书含金量浅析
  7. Edge浏览器突然变得很卡怎么办的解决方法
  8. 淘宝商品信息爬取,实现词云,并进行饼状图绘制及效果图
  9. 外包整整干了一年,废了。。。
  10. 小米6没有开启位置服务器,小米6gps在哪打开