码迷,mamicode.com
首页 > 其他好文 > 详细

QT使用WOL实现远程一键开机(局域网,需要目标电脑的主板支持,并且插上网线,用udpSocket.writeDatagram一句话就可以)

时间:2016-10-28 22:45:15      阅读:166      评论:0      收藏:0      [点我收藏+]

标签:实现   title   log   技术分享   局域网   mem   并且   res   src   

功能:让关机的电脑一键开机,需要目标电脑的主板支持,并且插上网线;

效果:相当于手动按了一下目标电脑的开关机按钮。

没啥技术含量,简单开说...

1.获取目标机MAC地址

QByteArray sMacAddr("00-1f-16-26-d5-73");

2.封装魔法包chMagicPacket

技术分享
 char chMacAddr[9];//应该是6个字符,但是如果写6个字符,下面sscanf_s会报错,所以写大点
 char chMagicPacket[104];
 const char *lpMacAddr=sMacAddr.data();

 sscanf_s( lpMacAddr,"%2x-%2x-%2x-%2x-%2x-%2x",
           &chMacAddr[0],&chMacAddr[1],&chMacAddr[2],
           &chMacAddr[3],&chMacAddr[4],&chMacAddr[5] );

 memset(chMagicPacket,0xff,6);
 int packetsize=6;
 for(int i=0;i<16;i++){
     memcpy(chMagicPacket+packetsize,chMacAddr,6);
        packetsize+=6;
 }
技术分享

3.发送魔法包

udpSocket.writeDatagram(chMagicPacket, 102, QHostAddress("255.255.255.255"), 50209);

 

http://www.cnblogs.com/luoxiang/p/5413096.html

 

QT使用WOL实现远程一键开机(局域网,需要目标电脑的主板支持,并且插上网线,用udpSocket.writeDatagram一句话就可以)

标签:实现   title   log   技术分享   局域网   mem   并且   res   src   

原文地址:http://www.cnblogs.com/findumars/p/6009474.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!