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
|
#define TAILLE_MAX_DONNEE 1024
#define SOCKET_PATH "/Users/TariC/Documents/socket/sock"
int main()
{
socklen_t longueur_adresse;
struct sockaddr_un adresse;
int fd;
adresse.sun_family = AF_LOCAL;
strcpy(adresse.sun_path, SOCKET_PATH);
longueur_adresse = SUN_LEN(&adresse);
fd = socket(PF_LOCAL, SOCK_DGRAM, 0);
if (fd < 0) {
abandon("Création du socket serveur");
}
if (bind(fd, (struct sockaddr *) &adresse, longueur_adresse) < 0) {
abandon("Nommage du socket serveur");
}
printf("> Serveur demarre sur le socket local\n");
while (1) {
int lg;
char tampon[TAILLE_MAX_DONNEE+1];
lg = recvfrom(lg, tampon, TAILLE_MAX_DONNEE, 0, NULL, NULL);
if (lg <= 0) {
abandon("Reception datagramme");
}
tampon[lg] = '\0';
printf("Recu : %s\n", tampon);
if (strcmp(tampon, "stop") == 0) {
printf("> arret demande\n");
break;
}
}
close(fd);
return EXIT_SUCCESS;
} |
Partager