Перейти к содержанию
Fire Monkey от А до Я
  • 0

Проблема Wake-on-Lan


Саша

Вопрос

Здравствуйте!
Пытаюсь запустить компьютер из ИНТЕРНЕТА.
В роутере проброс портов сделан: UDP 192.168.0.49:9 IP локального компьютера
IP от провайдера статический (в примере: 40.240.8.50)

Вот этот фрагмент работает в Windows четко.
На андроиде не работает. Компилируется без ошибок.

procedure TForm1.Button5Click(Sender:TObject);
const s='18:C0:4D:7E:E6:B2'; // MAC адрес сетевой платы
var
  Data,temp:string;
  k,n:integer;
begin
IdUDPClient1:=TIdUDPClient.Create(nil);
  Data:='';
  for k:=0 to 5 do begin
    Data:=Data+Chr(StrToInt('$FF'));
  end;
  temp:=StringReplace(s,':','', [rfReplaceAll]);
  for k:=0 to 15 do begin
    temp:=StringReplace(s,':','', [rfReplaceAll]);
    for n:=0 to 5 do begin
      Data:=Data+Chr(StrToInt('$'+temp[1]+temp[2]));
      Delete(temp,1,2);
    end;
  end;
  IdUDPClient1.Send('40.240.8.50',9, Data);
end;

Ссылка на комментарий

Рекомендуемые сообщения

  • 0
В 23.02.2024 в 18:37, Саша сказал:

Вот этот фрагмент.

Не красиво!
Красиво:

procedure TForm1.Button5Click(Sender: TObject);
const s='18:C0:4D:7E:E6:B2'; // MAC адрес сетевой платы
var
  Data:string;
  Bytes:TBytes;
  IdUDPClient1:TIdUDPClient;
begin
  Data:='';
  for var bt in s.Split([':']) do
    Data:=Data+chr(StrToInt('$'+bt));
  for var i:=0 to 3 do
    Data:=Data+Data;
  Data:=StringOfChar(#$FF,6)+Data;
  Bytes:=TEncoding.ANSI.GetBytes(Data);
  IdUDPClient1:=TIdUDPClient.Create(nil);
  try
    IdUDPClient1.SendBuffer('40.240.8.50',9, TIdBytes(Bytes));
  finally
    IdUDPClient1.Free;
  end;
end;

 

Ссылка на комментарий
  • 0
8 часов назад, Slym сказал:

Не красиво!
Красиво:

 

Собственно это не мой код. Я сделал совершенно другим  способом. И меня беспокоила не красота, а то, что андроид в отличии от виндовс делал это калечно: там обрезался старший бит. Максимальное значение было #7F (127), а все, что больше #3F - знак вопроса.

Проблема решилась так:

IdUDPClient1.Send('40.240.8,50',9,Data,IndyTextEncoding(IdTextEncodingType.enc8Bit));

 

 

 

Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить на вопрос...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

  • Последние посетители   0 пользователей онлайн

    • Ни одного зарегистрированного пользователя не просматривает данную страницу
×
×
  • Создать...