1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47
|
void sendUDPBroadcast(char * command) {
SOCKET maSocket;
SOCKADDR_IN serverAddr;
int sent;
bool tmpBool;
BYTE *sendBuffer;
//char *stringBuffer;
USHORT bufferSize;
SOCKET csock;
socklen_t recsize = sizeof(serverAddr);
int sock_err;
maSocket=socket(AF_INET, SOCK_DGRAM, 0);
if (maSocket == INVALID_SOCKET) {
goto EndFunction;
}
if(bind(maSocket, (SOCKADDR *) &serverAddr, sizeof serverAddr) == SOCKET_ERROR)
{
perror("socket()");
exit(errno);
}
serverAddr.sin_family = AF_INET; // famille INET (internet)
serverAddr.sin_addr.s_addr = inet_addr("255.255.255.255"); // on broadcaste à tout le monde
serverAddr.sin_port = htons(2152); // numero du port du PC SERVEUR, htons convertit
tmpBool=true;
setsockopt(maSocket, SOL_SOCKET, SO_BROADCAST, (const char *)&tmpBool, sizeof(tmpBool));
encryptString(command, &sendBuffer, &bufferSize);
decryptString(sendBuffer, &test);
if (sendto(maSocket, (const char *)sendBuffer, bufferSize, 0, (SOCKADDR*)&serverAddr, sizeof(serverAddr)) < 0)
{
perror("sendto()");
exit(errno);
}
free(sendBuffer);
closesocket(maSocket);
EndFunction:;
} |
Partager