QT使用WOL實現遠程一鍵開機(局域網)

功能:讓關機的電腦一鍵開機,需要目標電腦的主板支持,並且插上網線;

效果:相當於手動按了一下目標電腦的開關機按鈕。

沒啥技術含量,簡單開說...

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);

 

 

  

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章