2014-06-12 10 views
5

Ich programmiere ein Wake on LAN-Programm für unser Unternehmen. Es gibt ca. 40-50 Maschinen in unserer Firma und es sollte jeden Kunden aufwecken. Aufzuwachen die Kunden verwende ich diesen Code:C# Wake on LAN-Programm weckt nicht jeden Client

private static void WakeUp(string macAddress) 
{ 
    WOLClass client = new WOLClass(); 

    client.Connect(new IPAddress(0xffffffff), 0x2fff); 
    client.SetClientToBroadcastMode(); 

    int counter = 0; 

    byte[] bytes = new byte[1024]; 

    for (int e = 0; e < 6; e++) 
    { 
     bytes[counter++] = 0xFF; 
    } 

    for (int e = 0; e < 16; e++) 
    { 
     int i = 0; 

     for (int w = 0; w < 6; w++) 
     { 
      bytes[counter++] = byte.Parse(macAddress.Substring(i, 2), NumberStyles.HexNumber); 
      i += 2; 
     } 
    } 

    int returnedValue = client.Send(bytes, 1024); 
} 

public class WOLClass : UdpClient 
{ 
    public WOLClass() 
     : base() 
    { 

    } 

    public void SetClientToBroadcastMode() 
    { 
     if (this.Active) 
     { 
      this.Client.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.Broadcast, 0); 
     } 
    } 
} 

und auf button_Click Ereignis Ich nenne nur die Methode WakeUp(macAddress)

Die meisten Kunden normalerweise aufwachen. Aber auf manchen Clients hört der Computer einfach auf zu starten und bleibt in einem schwarzen Monitor mit einer kleinen Unterstreichung in der oberen linken Ecke. Ich habe die macAddress für jeden Client 3 mal (ipconfig) und auch im Debug-Modus von VS2012 überprüft. Es ist immer identisch und korrekt. Es kann also kein Mac-Adress-Problem sein.

Kennt jemand dieses Problem?

Vorschläge geschätzt :)

Antwort

10

Das Problem ist nicht der Code ist, ist es die Maschine. Versuchen Sie, die Hardware zu debuggen.

Siehe, Wake on Lan ist ein magisches Paket. Die Netzwerkkarte bekommt es und weckt dann die Maschine auf.

Das ist alles, was Sie tun.

Die Maschine muss dann richtig aufwachen, und da läuft etwas schief. Es gibt nichts in Ihrem magischen Paket, das dies verursachen könnte - ich würde mit den üblichen Verdächtigen beginnen (Biodversionen kommen mir in den Sinn).

Wenn bestätigt werden kann, dass die Maschine gestartet wurde (und dann während des Starts stoppt), handelt es sich nicht um ein Programmierproblem.