![]() |
![]() ![]() ![]() ![]() ![]() |
![]() |
Реализация Wake для сети – Волшебный ПакетDelphi , Интернет и Сети , СетьРеализация Wake для сети – Волшебный Пакет
Оформил: DeeCo { What's a Magic Packet? Was ist ein Magic Packet? DESTINATION SOURCE MISC. FF FF FF FF FF FF 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 11 22 33 44 55 66 MISC. CRC. Note: Destination, Source, Misc and CRC are normally added by our Socket-Component Beachte: Destination, Source, Mis und CRC werden normalerweise von deiner Socket-Komponente hinzugefugt } procedure TForm1.Button1Click(Sender: TObject); var Data, temp: string; k, n: integer; begin Data := ''; for k := 0 to 5 do begin Data := Data + Chr(StrToInt('$FF')); // 6x add a FF / 6x ein FF hinzufugen end; temp := StringReplace(Edit1.Text, '-', '', [rfReplaceAll]); for k := 0 to 15 do begin temp := StringReplace(Edit1.Text, '-', '', [rfReplaceAll]); for n := 0 to 5 do begin // 16x add Target-Mac-Adress / 16x die Ziel-Macadresse hinzufugen Data := Data + Chr(StrToInt('$' + temp[1] + temp[2])); Delete(temp, 1, 2); end; end; //Example with TIdUDPClient of Indy //IdUDPClient1.Send('255.255.255.255', '80', Data); // Send it / Verschick es end; Что такое Magic Packet? Magic Packet - это специальный пакет UDP, отправляемый для пробуждения компьютера на сети. Он состоит из адреса MAC-адреса назначения, за которым следуют 6 байт FF (все единицы), а затем повторяется адрес MAC-адреса цели несколько раз. Объяснение кода Код написан на Delphi и использует библиотеку Indy для сетевого программирования.
Примечание Комментарий гласит, что обычно адрес MAC-адреса назначения, адрес MAC-адреса источника и CRC (Циклическая Красная Проверка) добавляются компонентом сокета. Однако в этом реализации эти значения не включены в сгенерированный Magic Packet. Альтернативное решение Если вы хотите генерировать Magic Packet более эффективно, можно использовать одиночный цикл для итерации по каждому байту адреса MAC-адреса цели и добавления его к строке
Код предполагает, что В статье описывается реализация Wake-функции для сети, которая использует магический пакет (Magic Packet) для обнаружения и включения компьютеров в локальной сети. Комментарии и вопросыПолучайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.
|
||||
©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007 |