2010-12-02 11 views
0

Ich möchte ein magisches Paket senden, um einen bestimmten PC (spezifische MAC-Adresse) zu aktivieren, der an ein mbed-LAN angeschlossen ist. Ich habe den folgenden Code im Code-Projekt gefunden.Schreiben von magischen Paketen in C++

Meine MAC-Adresse: 00-C0-9F-BD-E4-3A (Beispiel) ..... wie kann ich dies deklarieren und füllen Sie diese in das Array. * Ich habe wenig Kenntnisse in der Programmierung. also bitte ignoriere jeden Fehler oder miss Interpretation.

BYTE magicP [102];

...

//Fill in magic packet with 102 Bytes of data 

//Header 

//fill 6 Bytes with 0xFF 

for (int i=0;i<6;i++) 
    magicP[i] = 0xff; 
//First 6 bytes (these must be repeated!!) 

//fill bytes 6-12 

for (i=0;i<6;i++) { 
    //Get 2 charachters from mac address and convert it to int to fill 

    //magic packet 

    magicP[i+6] = HexStrToInt(macAddr.Mid(i*2,2)); 
} 

//fill remaining 90 bytes (15 time repeat) 

for (i=0;i<15;i++) memcpy(&magicP[(i+2)*6],&magicP[6],6); 

...

hier ist wie, wo ich diesen Code gefunden haben: http://www.codeproject.com/KB/IP/WOL.aspx

+0

Dieser Code ist kein vollständiges Programm. Du musst es anpassen oder jemanden für dich machen lassen; oder verwenden Sie ein vorgefertigtes Wake-on-LAN-Programm. –

Antwort

1

ich dir Angst, nicht genug von der Bereitstellung von Code, um eine eindeutige Antwort zu geben (ein Link könnte helfen), aber ich denke, dass Sie magicP[] nicht selbst ausfüllen müssen - das ist, was der Code für Sie tut. Es scheint, dass Sie Ihre hexadezimale MAC-Adresse als Eingabe in der Variablen macAddr als eine Zeichenfolge aus 12 hexadezimalen Ziffern (z. B. "023FDCA889FA") angeben müssen.

Bearbeiten: Nachdem ich den Link gelesen habe, betrachte ich meine Ahnung bestätigt. Das Code-Snippet zeigt, wie das Array magicP[] (das schließlich die Paketnutzlast enthält) basierend auf dem bereitgestellten macAddr konstruiert wird, um eine theoretische Erklärung zu veranschaulichen, die ihm vorausgeht. Irgendwo muss also eine Definition std::string macAddr; sein, in die Sie Ihre MAC-Adresse eingeben und die dann an die Berechnungsmethode übergeben wird.

Ich schlage vor, dass Sie die vollständige Quelle aus dem verknüpften Projekt (oder einem anderen offenen WOL-Programm) herunterladen, da dies ein besseres Verständnis darüber gibt, wie die Stücke zusammenpassen.