WakeOnLan mit wxWidgets - Socket not initialised
-
Hallo,
ich habe einen WakeOnLan Code gefunden, und möchte diesen gerne zum laufen bekommen, leider bekomme ich beim SendTo() folgenden Dialog:
"wxWidgets Debug Alert:
../../src/common/socket.cpp(2073): assert "m_impl" failed in SendTo():
Socket not initialised
Do you want to stop the program?
You can also choose [Cancel] to suppress further warnings."Danach bekomme ich ein SIGSEGV (Nein) oder ein SIGTRAP (Ja) signal, je nachdem was ich antworte.
Hier der Code:
wxByte magicpacket[108]; wxString macaddress="001b78aae562"; wxInt32 i; for(i=0; i<6; i++) magicpacket[i] = 0xff; for(i=0; i<6; i++) magicpacket[i+6] = HexStrToInt(macaddress.Mid(i*2,2)); for(i=0; i<15; i++) memcpy(&magicpacket[(i+2)*6],&magicpacket[6],6); wxIPV4address BroadcastAddress; BroadcastAddress.Hostname("255.255.255.255"); BroadcastAddress.Service(9); wxDatagramSocket BroadcastSocket(BroadcastAddress, wxSOCKET_NOWAIT); BroadcastSocket.SendTo(BroadcastAddress, magicpacket, sizeof(magicpacket));
public: static int HexStrToInt(wxString Hex) { if(Hex.SubString(1,2) != "0X") Hex = "0x" + Hex; return wxAtoi(Hex); }
Hoffe ihr könnt mir helfen. Vielen Dank im Voraus.
Mit freundlichen Grüßen,
DarkBug
-
Ich weiss nicht ob es daran liegt, aber steht im Code, vielliecht in der OnInit
wxSocketBase::Initialize();
weil laut Doku...
...Perform the initialization needed in order to use the sockets...
-
Danke für deine Antwort. In der Doku steht aber auch:
This function is called from wxSocket constructor implicitly and so normally doesn't need to be called explicitly.
Aber auch mit einem
wxSocketBase::Initialize();
in der OnInit() funktioniert es nicht. Genau der gleiche Fehler.
Hoffe auf weitere Lösungsvorschläge.