AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Wake on LAN

Ein Thema von Evian · begonnen am 5. Sep 2003 · letzter Beitrag vom 21. Apr 2011
Antwort Antwort
Seite 2 von 4     12 34   
Benutzerbild von phXql
phXql

Registriert seit: 11. Mär 2004
Ort: Mühldorf
824 Beiträge
 
#11

Re: Wake on LAN

  Alt 19. Aug 2004, 11:24
Zitat von Evian:
Ok hab mit dem Autor von dem Tip im Swiss Delpihcenter geredet und das Problem liegt daran, dass man beim Socket Broadcast auf true setzen kann.. weil ja sonst klar ist, dass es einfach nicht funktionieren kann.
Wenn man es aber macht, dann funzt der Code Prima!

MFG

Evian
hättest du die kommentare zu diesem tipp gelesen, hättest du einen link in das forum bekommen, wo genau das mit dem broadcast steht
"Dunkel die andere Seite ist"
"Yoda! Halts Maul und iss deinen Toast!"
  Mit Zitat antworten Zitat
Benutzerbild von Ricane
Ricane

Registriert seit: 21. Mär 2003
Ort: Quickborn
170 Beiträge
 
Delphi 7 Architect
 
#12

Re: Wake on LAN

  Alt 25. Aug 2004, 14:27
Zitat von MaBuSE:
[...]
[OT]@Ricane: Ist Dein Avatar ein Bild von Dir? [/OT]
Ne, ist meine Freundin... bin ja auch ein männlicher-welcher...
Hendrik
So much to Code... so less Time....

www.RicaneSoftware.de
  Mit Zitat antworten Zitat
Benutzerbild von MaBuSE
MaBuSE

Registriert seit: 23. Sep 2002
Ort: Frankfurt am Main (in der Nähe)
1.837 Beiträge
 
Delphi 10 Seattle Enterprise
 
#13

Re: Wake on LAN

  Alt 25. Aug 2004, 14:36
Zitat von Ricane:
Zitat von MaBuSE:
[...]
[OT]@Ricane: Ist Dein Avatar ein Bild von Dir? [/OT]
Ne, ist meine Freundin... bin ja auch ein männlicher-welcher...
Antwort da OT hier: http://www.delphipraxis.net/internal...ct.php?t=32891
(°¿°) MaBuSE - proud to be a DP member
(°¿°) MaBuSE - proud to be a "Rüsselmops" ;-)
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#14

Re: Wake on LAN

  Alt 16. Nov 2005, 10:04
Hallo,

für mich ist der Code der Schweizer so irgendwie gar nicht nachvollziehbar:

Delphi-Quellcode:
{
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 hinzugefügt
}


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 hinzufügen
  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 hinzufügen
      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;
Zum einen wird der Variablen Temp zweimal das Selbe zugeordnet, was entweder einmal zuviel ist oder es soll anders heißen und zum zweiten können die Übergabeparameter für IdUDPClient1.Send so gar nicht stimmen, weil dort nur ein Parameter erwartet wird.

So funzt es zumindest mit dem Beispiel(hier ausgeklammert) nicht...

Gruß

Gambit
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#15

Re: Wake on LAN

  Alt 16. Nov 2005, 16:24
Es gibt für Send mehrere Prozeduren.
Ich verwende übrigens folgenden Code:
Delphi-Quellcode:
var data, temp, mac: String;
    k: Integer;

begin
  mac := StringReplace(MacEdit.Text, '-', '', [rfReplaceAll]);

  temp := '';
  for k := 0 to 5 do
    temp := temp + Chr(StrToInt('$' + Copy(mac, k * 2 + 1, 2)));
  for k := 0 to 3 do
    temp := temp + temp;
  Data := #255#255#255#255#255#255 + temp;

  UDPClient.Send('255.255.255.255', 80, Data);
end;
Gruß,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#16

Re: Wake on LAN

  Alt 16. Nov 2005, 16:53
Zitat von ManuMF:
Es gibt für Send mehrere Prozeduren.

Gruß,
ManuMF
Ja schon, aber ich bekam mit dem Code die Meldung, dass es keine überladenen Methoden von Send mit den Parametern gibt. Vielleicht wars ja ein Paste und Copy Fehler. Ich habe Port und Broadcast IP im Oberinspector übernommen und als Parameter weggelassen, das ging dann auch...
  Mit Zitat antworten Zitat
Puhbaehr
(Gast)

n/a Beiträge
 
#17

Re: Wake on LAN

  Alt 18. Nov 2005, 09:48
Grobes Beispiel;

Delphi-Quellcode:
var
  UDPClient : TIdUDPClient;
  ...

  //UDPClient := TIdUDPClient.Create (nil);
    
  UDPClient.BroadcastEnabled := true;
  UDPClient.Host := '255.255.255.255';
  UDPClient.Port := 2050;

  UDPClient.SendBuffer (Data, SizeOf (Data));
So nimmt es zumindest der Compiler an und es gibt keine Exceptions. Ob es wirklich funktioniert werde ich in ein paar Minuten sehen wenn ich meinen Rechner magisch erwachen lasse (Braucht aber noch etwas da der Nachbar scheinbar noch schläft lol)

Data ist genau das was die Definition des SwissDelphiCenter besagt.
  Mit Zitat antworten Zitat
Puhbaehr
(Gast)

n/a Beiträge
 
#18

Re: Wake on LAN

  Alt 20. Nov 2005, 05:51
So, obiges Beispiel was ich gepostet hab funktioniert so nicht wirkich.

Der Teil mit dem Absenden funktioniert prächtig, sofern der Aufbau/Inhalt von Data richtig ist. Denn die Umsetzung der Definition der Schweizer haut irgendwie nicht hin:
Delphi-Quellcode:
{
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 hinzugefügt
}
Laut der Definition werden...
1. Destination, Source, Misc (?) und CRC (?) von der Komponte eingefügt. D.h. in dem Fall Indy. Ob das so ist...weiß ich nicht.
2. 6 mal die Hex-Zahl 0xFF (Dez 255)
3. 16 mal die Mac-Adresse im HexFormat

Ob die Punkte eine Bedeutung haben? Ich denke mal nicht.
Aber somit sollte es gehen? Tut es aber nicht, zumindest nicht bei mir.
Schicken wir Data so ab kommen wir auf eine Gesamtlänge von 102.

Sehen wir uns das Beispiel von Sysworksoft.net an, fällt sofort auf, dass Data hier eine größe von 116 Byte hat. Also fehlt bei den Schweizern irgendwas.
Aber was?
Es werden zusätzlich vor 6 mal 0xFF, also vor 2. 0x00 und 0x74 (Dez 116) eingefügt und nachträglich 0x00, 0x40, 0x90, 0x90, 0x00 und 0x40.

Speicherauszug von Data wäre somit:
Delphi-Quellcode:
{
11 22 33 44 55 66 00 74 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 40 00 90 90 40 00
}
Die ersten 6 Bytes, die Ziel-MAC. Ist denk ich klar. Obwohl sie glaub ich optional sein kann. Anschließend Byte 00 und 74, scheint die Gesamtlänge des "Pakets" zu sein (16 Bit), also die 116. FF FF FF FF FF FF ist, so wie ich es weiß, der Code (Befehl) an die Netzwerkkarte den Rechner anzuschalten.
Aber was ist der Rest?
Misc scheint ja nun die Länge zu sein. Aber Misc am Ende? O.o
Ok, mit Hilfe von Wiki lässt sich nun auch [wiki]CRC[/wiki] erklären und CRC ist demnach die 16-Bit große optionale Prüfsumme über den UDP-Kopf (bestehend aus dem Pseudo-Header der wiederrum aus Quell-IP, Ziel-IP, leer 8-Bitfeld, Protokoll-Typ (8 Bit, UDP = 17)) und die Länge des Pakets und zusätzlich aus den eigentlichen Daten besteht die aber im UDP-Header angesiedelt wird?
Mh...ist mir noch nicht ganz einleuchtend wieso die nun am Ende steht obwohl sie im Kopf stehen müsste? (wenn es eine gibt...)
Aber erstmal egal. Damit funktioniert es zumindest ersteinmal.

Ich hätte nun noch eine andere Frage zum WakeOnLan.

Das "MagicPaket" wird ja übers User Data Protocoll geschickt welches Verbindungslos ist. D.h. der Empfänger sendet keine Empfangsbesätigung an den Sender zurück sobald das Paket wirklich angekommen sind (wie es bei TCP als verbindungsorientiertes Protokoll ist).
Somit weiß ich nicht ob das MagicPaket wirkich angekommen ist.
Aber hab ich dennoch eine Möglichkeit schnell zu erfahren ob das Paket angekommen ist? Kann ich denn TCP fürs MagicPaket verwenden?
Denn irgendwie, als ich WakeOnLan das erste mal testete wollte es manchmal gar nicht anspringen, obwohl ich mehrere Programme (auch fertige) verwendete. Erst als ich den Rechner öfter mit WakeOnLan hochfahren ließ versagte er seltener. Es ist also sehr unzuverlässig. Ich brauche aber dennoch eine sichere Möglichkeit den Rechner übers Netzwerk einzuschalten.

Vielen Dank!

Gruß, Robert
  Mit Zitat antworten Zitat
Benutzerbild von Daniel B
Daniel B

Registriert seit: 27. Okt 2005
Ort: Dachau
453 Beiträge
 
Delphi 2007 Professional
 
#19

Re: Wake on LAN

  Alt 20. Nov 2005, 10:08
http://www.delphipraxis.net/internal...highlight=wake
  Mit Zitat antworten Zitat
Benutzerbild von ManuMF
ManuMF

Registriert seit: 11. Jul 2005
1.016 Beiträge
 
Delphi 6 Personal
 
#20

Re: Wake on LAN

  Alt 20. Nov 2005, 11:02
Hallo,

das Problem ist folgendes:
Die Schweizer verwenden für den Port einen String, aber ab Indy 10 ist es ein Integer!

Gruß,
ManuMF
Gruß,
ManuMF

Endlich hab ich was Positives an Vista entdeckt: Das mitgelieferte Mahjongg
  Mit Zitat antworten Zitat
Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:42 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz