-
Notifications
You must be signed in to change notification settings - Fork 0
/
client_socket.cpp
34 lines (28 loc) · 1.17 KB
/
client_socket.cpp
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
#include "client_socket.h"
aquaclientsocket::aquaclientsocket(std::string typeofsocket, int port)
{
std::cout << "Creation du client '" << typeofsocket << "' sur le port " << port << std::endl;
// Creation du socket
if ( (sockfd = socket(AF_INET, SOCK_DGRAM, 0)) < 0 ) {
perror("Erreur lors de la creation du socket");
exit(EXIT_FAILURE);
}
memset(&servaddr, 0, sizeof(servaddr));
broadcastEnable=1;
ret=setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, &broadcastEnable, sizeof(broadcastEnable));
// Information pour le client
servaddr.sin_family = AF_INET; // dire au client que l'ip de connexion est de type IPV4
servaddr.sin_port = htons(port); // port de connexion
servaddr.sin_addr.s_addr = htonl(INADDR_BROADCAST); // dire au client d'envoyer sur toute les ip de broadcast
}
void aquaclientsocket::send(std::string message)
{
//envoie du message
sendto(sockfd, message.c_str(), strlen(message.c_str()), 0, (struct sockaddr *)&servaddr, sizeof(servaddr));
std::cout << "Trame envoyée !" << std::endl;
}
void aquaclientsocket::closeSocket()
{
//ferme le socket
close(sockfd);
}