Programuję program Wake on LAN dla naszej firmy. Jest około 40-50 maszyn w naszej firmie i powinna obudzić każdego klienta. Aby obudzić klientów używam tego kodu:C# wake on lan program nie pobudza każdego klienta
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);
}
}
}
i button_Click
razie po prostu wywołać metodę WakeUp(macAddress)
Większość klientów obudzić się normalnie. Jednak w przypadku niektórych klientów komputer przestaje się uruchamiać i pozostaje na czarnym monitorze z niewielkim podkreśleniem w lewym górnym rogu. Sprawdziłem już macAddress dla każdego klienta 3 razy (ipconfig), a także w trybie debugowania VS2012. To zawsze jest identyczne i poprawne. Więc nie może to być problem z adresem MAC.
Czy ktoś zna ten problem?
Sugestie mile widziane :)