一.定义

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

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

  实现方法:通过被唤醒机的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. HDU 1538

    http://acm.hdu.edu.cn/showproblem.php?pid=1538 经典经济学问题,海盗分金 分析http://www.guokr.com/article/41423/ #i ...

  2. 传智播客JavaWeb day03

    ServletContext 这堂课主要讲ServletContext这个web域(可以看得见范围的)对象,web在启动的时候会创建唯一的ServletContext域对象. 作用:1.用来web域共 ...

  3. js中Math.round、parseInt、Math.floor和Math.ceil小数取整总结

    Math.round.parseInt.Math.floor和Math.ceil 都可以返回一个整数,具体的区别请看下面的总结. 一.Math.round 作用:四舍五入,返回参数+0.5后,向下取整 ...

  4. readonly背景色(css)

    input{ background-color:expression(this.readOnly==true?"#EEEEEE":"#FFFFFF"); } i ...

  5. windows下面安装Python和pip

    windows下面安装Python和pip 安装Python 第一步,我们先来安装Python, https://www.python.org/downloads/ 这里选择的是2.7.10 第二步. ...

  6. Sea.js学习1——初识Sea.js

    Sea.js 是一个成熟的开源项目,核心目标是给前端开发提供简单.极致的模块化开发体验. 使用 Sea.js,在书写文件时,需要遵守 CMD (Common Module Definition)模块定 ...

  7. selenium下拉框选择

    下拉框结构如下,我需要选择的是new: html为: <select id="condition_type" name="condition_type" ...

  8. 【转】linux 编译安装nginx,配置自启动脚本

    linux 编译安装nginx,配置自启动脚本 本文章来给各位同学介绍一篇关于linux 编译安装nginx,配置自启动脚本教程,希望有需要了解的朋友可一起来学习学习哦. 在公司的suse服务器装ng ...

  9. php命令传参

    1.url方式 $param = array(); if ($argc > 1) { parse_str ( $argv [1], $param ); foreach ( $param as $ ...

  10. FFmpeg.exe使用随笔

    一.将图片合成为MP4 1.将照片合成为h264 ffmpeg -framerate 12 -i %3d.png -c:v libx264 -pix_fmt yuv420p test.h2642.将h ...