2010-12-02 5 views
0

Je veux envoyer un paquet magique pour réveiller un PC spécifique (adresse MAC spécifique) connecté à un réseau LAN mbed. J'ai trouvé le code suivant dans le projet de code.Ecriture d'un paquet magique en C++

Mon adresse MAC: 00-C0-9F-BD-E4-3A (exemple) ... comment puis-je le déclarer et le remplir dans le tableau. * J'ai peu de connaissances en programmation. alors s'il vous plaît ignorer toute erreur ou manquer l'interprétation.

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

...

ici est similaire où j'ai trouvé ce code: http://www.codeproject.com/KB/IP/WOL.aspx

+0

Ce code n'est pas un programme complet en soi. Vous devrez l'adapter ou demander à quelqu'un de le faire pour vous. ou utilisez un programme Wake-on-LAN ready-made. –

Répondre

1

Je crains que vous ne fournissent pas les assez de code pour donner une réponse sans équivoque (un lien peut aider), mais je pense que vous n'avez pas à remplir magicP[] vous-même - c'est ce que le code fait pour vous. Il semble que vous deviez fournir votre adresse MAC hexadécimale en tant qu'entrée dans la variable macAddr, sous la forme d'une chaîne de 12 chiffres hexadécimaux (par exemple "023FDCA889FA"). Edit: Après avoir lu le lien, je considère mon intuition confirmée. L'extrait de code montre comment le tableau magicP[] (qui contient finalement la charge utile du paquet) est construit sur la base du macAddr fourni, afin d'illustrer une explication théorique qui le précède. Donc quelque part il doit y avoir une définition std::string macAddr; dans laquelle vous entrez votre adresse MAC, et qui est ensuite passé à la méthode de calcul.

Je vous suggère de télécharger la source complète du projet lié (ou d'un autre programme WOL ouvert), car cela vous permettra de mieux comprendre comment les pièces s'emboîtent.