一.定义

  网络唤醒:唤醒休眠状态下的计算机,而不是已关机的计算机。

  优势:可通过定时功能实现自动唤醒计算机,减少人力使用。

  实现方法:通过被唤醒机的MAC地址进行广播发送请求,唤醒计算机。

二.硬件设置

  1.Win7系统下设置如下图,计算机-》设备管理器-》网卡驱动属性

2.在BIOS设置允许网络唤醒

  该功能设置介绍起来太墨迹,各位自行百度吧,很简单...

二.上代码

  技术提示:通过被唤醒机的MAC地址进行唤醒,格式为6遍“FF”+17遍mac的byte类型字节。

  本来想先传代码,再进行一步一步讲解的,但真是麻烦的不行,直接在代码里写注释了,各位自己看吧。源代码在结尾处。

 public partial class MainWindow : Window
{
//通过正则表达式设定MAC地址筛选标准,关于正则表达式请自行百度
const string macCheckRegexString = @"^([0-9a-fA-F]{2})(([/\s:-][0-9a-fA-F]{2}){5})$"; private static readonly Regex MacCheckRegex = new Regex(macCheckRegexString); public MainWindow()
{
InitializeComponent(); }
//唤醒主要逻辑方法
public static bool WakeUp(string mac)
{
//查看该MAC地址是否匹配正则表达式定义,(mac,0)前一个参数是指mac地址,后一个是从指定位置开始查询,0即从头开始
if (MacCheckRegex.IsMatch(mac, ))
{
byte[] macByte = FormatMac(mac);
WakeUpCore(macByte);
return true;
} return false; } private static void WakeUpCore(byte[] mac)
{
//发送方法是通过UDP
UdpClient client = new UdpClient();
//Broadcast内容为:255,255,255,255.广播形式,所以不需要IP
client.Connect(System.Net.IPAddress.Broadcast, );
//下方为发送内容的编制,6遍“FF”+17遍mac的byte类型字节。
byte[] packet = new byte[ * ];
for (int i = ; i < ; i++)
packet[i] = 0xFF;
for (int i = ; i <= ; i++)
for (int j = ; j < ; j++)
packet[i * + j] = mac[j];
//唤醒动作
int result = client.Send(packet, packet.Length);
} private static byte[] FormatMac(string macInput)
{
byte[] mac = new byte[]; string str = macInput;
//消除MAC地址中的“-”符号
string[] sArray = str.Split('-'); //mac地址从string转换成byte
for (var i = ; i < ; i++)
{
var byteValue = Convert.ToByte(sArray[i], );
mac[i] = byteValue;
} return mac;
} private void Button_Click_1(object sender, RoutedEventArgs e)
{
WakeUp("00-01-80-7E-C3-D2");
}
}

三.代码上传

C# 远程网络唤醒介绍及代码的更多相关文章

  1. 远程debug调试java代码

    远程debug调试java代码 日常环境和预发环境遇到问题时,可以用远程调试的方法本地打断点,在本地调试.生产环境由于网络隔离和系统稳定性考虑,不能进行远程代码调试. 整体过程是通过修改远程服务JAV ...

  2. c#实现windows远程桌面连接程序代码

    使用winform制作windows远程桌面连接程序,windows自带了远程桌面连接,我们需要将远程桌面连接集成 到自己的winform程序,并实现管理远程主机的配置. 远程桌面核心类库 windo ...

  3. 使用PyCharm实现远程编写并调试代码

    使用PyCharm实现远程编写并调试代码 版权声明:本文为博主原创文章,转载请注明出https://www.cnblogs.com/wenqiangit/p/9771947.html 因为工作中使用的 ...

  4. 单元测试_JUnit常用单元测试注解介绍及代码演示

    JUnit常用单元测试注解介绍及代码演示   by:授客 QQ:1033553122 1. 测试环境 1 2. 基础概念 1 3. 常用Annotation 1 4. 运行环境配置 3 maven配置 ...

  5. git连接不上远程仓库---visualstudio提交代码报错:no upstream configured for branch 'master'

    1,新建文件夹,在文件下下鼠标右键git bush--->git init,初始化仓库: 2,设置gitthub仓库地址:git remote add origin https://github ...

  6. git从远程仓库中更新代码到本地仓库

    git从远程仓库中更新代码到本地仓库 有时候在使用git pull的时候,会莫名才报错.查了很多资料,尝试过git的很多命令.包括git fetch命令,都会报同样的错.最后终于发现了一条捷径,由网友 ...

  7. 采样方法(二)MCMC相关算法介绍及代码实现

    采样方法(二)MCMC相关算法介绍及代码实现 2017-12-30 15:32:14 Dark_Scope 阅读数 10509更多 分类专栏: 机器学习   版权声明:本文为博主原创文章,遵循CC 4 ...

  8. 一分钟搞定pychram远程调试和同步代码

    首先说一下需求,否则很多人都不知道pycharm这个远程同步和调试到底是干嘛使的. 需求很简单,我想要在本地的windows机器上跑一个程序,但是程序运行会加载一些很占内存的树型数据结构,称其为tre ...

  9. 远程调用历史及代码编写demo

    历史介绍部分: 远程调用大致经过了corba.webservice.二进制跟restful四个阶段 corba时代,corba(Common Object Request Broker Archite ...

随机推荐

  1. C# 对List<T>取交集、连集及差集

    1. 取交集 List A :{1,5,9,3,7} List B:{1,6,8,5,3,2,9,4} var intersectedList = listA.Intersect(listB, new ...

  2. HTTP通信原理

    HTTP(HyperText Transfer Protocol)是一套计算机通过网络进行通信的规则.计算机专家设计出HTTP,使HTTP客户(如Web浏览器)能够从HTTP服务器(Web服务器)请求 ...

  3. Eos持久化实体

    持久化实体 2009-11-30 20:53:38|  分类: 记事本_学习笔记 |  标签: |举报 |字号大中小 订阅     在EOS的实体定义中,如果使用了关联实体方式,主实体的外键属性是不存 ...

  4. Android HandlerThread 的使用及其Demo

    今天我们一起来学习下一个Android中比较简单的类HandlerThread,虽然它的初始化有点小麻烦. 介绍 首先我们来看看为什么我们要使用HandlerThread?在我们的应用程序当中为了实现 ...

  5. Neuroaesthetics神经美学

    欢迎您到脑科学的世界! 神经美学(或neuroaesthetics)是一个相对较新的经验主义美学的子学科.经验主义美学需要科学的方法来研究艺术和音乐的审美观念. neuroesthetics于2002 ...

  6. sqlite 删除表中重复数据(亲测可用)

    例子:表名  Paper .通过字段PaperID查找重复数据. 1 --查询某表中重复的数据       select * from Paper group by PaperID having co ...

  7. (基础篇)php中理解print EOT分界符和echo EOT的用法区别

    html与php编写中echo可以同时输出多个字符串,并不需要圆括号. print只可以同时输出一个字符串,需要圆括号. print的用法和C语言很像,所以会对输出内容里的%做特殊解释. echo无返 ...

  8. 8UFTP

    FTP  文件上传下载工具    FTP(File Transfer Protocol)是Internet上用来传送文件的协议(文件传输协议). 官网:http://ftp.8u.cn 网盘下载(版本 ...

  9. springMVC返回json

    <mvc:annotation-driven> <mvc:message-converters register-defaults="true"> < ...

  10. HTML中的按钮

    html中的五种按钮 (1)<button></button> 表单外调用一个js文件时使用 (2)<input type="button" valu ...