Текущий архив: 2008.04.13;
Скачать: CL | DM;
Вниз
Wake On Lan не всегда срабатывает Найти похожие ветки
← →
DelphiN! © (2007-07-20 07:46) [0]Пытаюсь сделать удаленное включение 100 компьютеров следующим образом :
procedure WakeOnLan(IP: String);
function HexStringToBinString(const HexStr: string): string;
var
i, l: integer;
begin
Result := "";
l := length(HexStr);
l := l div 2;
SetLength(Result, l);
for i := 1 to l do
if HexToBin(PChar(Copy(HexStr, (i - 1) * 2 + 1, 2)),
PChar(@Result[i]), 1) = 0 then
raise Exception.Create("Invalid hex value");
end;
procedure SendMagicPacket(MACAddress: string);
var
s, packet: string;
i: integer;
SS: TIdUDPClient;
begin
if Length(MACAddress) <> 12 then
raise Exception.CreateFmt("Invalid MAC Address: %s", [MACAddress]);
packet := HexStringToBinString("FFFFFFFFFFFF");
s := HexStringToBinString(MACAddress);
for i := 1 to 16 do
packet := packet + s;
try
ss := TIdUDPClient.Create(nil);
ss.Active := true;
ss.BroadcastEnabled := true;
ss.Broadcast(packet, 9);
finally
ss.Free;
end;
end;
begin
SendMagicPacket(GetMAC(IP));
end;
function GetMAC(IP: String): String;
var
INI: TINIFile;
begin
try
INI := TINIFile.Create(ExtractFilePath(ParamStr(0))+"DATA\MACS.DAT");
Result := ini.ReadString("MAIN",IP,"");
finally
INI.Free;
end;
end;
for i := 0 to IpList.Count-1 do
WakeOnLan(IpList.Strings[i]);
Однако включение всех компьютеров производится далеко не всегда. При первой попытке могут включиться все компьютеры, а может не включиться 1 или 10, или 50, или 99. При второй попытке может включиться оставшаяся часть, а может включиться не полностью ...
С чем связана данная нестабильность и как побороть это?
← →
dzr_gregory (2007-07-20 10:27) [1]Может быть это связано с UDP? Это ведь протокол без гарантированной доставки пакетов, отсюда и предположение, что часть пакетов может пропадать. Реализуй повторную отправку либо PING удаленным машинам через какое-то время и повторная отправка пакета тем, от кого не был получен ответ на PING.
Страницы: 1 вся ветка
Текущий архив: 2008.04.13;
Скачать: CL | DM;
Память: 0.45 MB
Время: 0.007 c