000
03.02.2006, 16:39 Uhr
~DuKe
Gast
|
Hallo,
ich habe ein problem mit einem UDP Broadcast.
ich nutze Wake on lan in meiner software, bei der mit UDP Broadcast ein magic packet versendet wird.
dieses funktioniert mit winXP auch wunderbar.
wenn ich aber den selben code auf einem win98 rechner ausführe, funktioniert es einfach nicht.
die rechner bleiben einfach ausgeschaltet.
normales UDP funktioniert, nur das broadcast macht probleme.
hat jemand ne iddee was dahinter stecken könnte?
mein initialisierungscode sieht so aus:
Code: |
on = 1;
m_SendSocketBc = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);
err = setsockopt(m_SendSocketBc, SOL_SOCKET, SO_REUSEADDR, &on, 1);
sockaddr_in inbc; // bind the socket inbc.sin_family = AF_INET; inbc.sin_port = htons(m_SrcPortBc); inbc.sin_addr.s_addr = htonl(INADDR_ANY); err = bind(m_SendSocketBc, (struct sockaddr*)&inbc, sizeof(struct sockaddr)); memset(&m_addSiBc,0,sizeof(sockaddr_in)); m_addSiBc.sin_family = AF_INET; m_addSiBc.sin_addr.s_addr = inet_addr("255.255.255.255"); m_addSiBc.sin_port = htons(m_DstPortBc); m_siSizeBc = sizeof(m_addSiBc);
char broadcast = 1;
err = setsockopt(m_SendSocketBc,SOL_SOCKET,SO_BROADCAST,&broadcast,sizeof(char));
|
und mein sender code
Code: |
void CNetSend::SendBroadcast(unsigned char *pMsg, int iMsgLen) { int ret = sendto(m_SendSocketBc, (char*)pMsg, iMsgLen, 0, (SOCKADDR *)&m_addSiBc, m_siSizeBc); }
|
|