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
| void *serveur(void *arg){
int pnum;
int sock;
int nouvelle;
sock = socket (AF_INET,SOCK_STREAM , 0);
if (sock < 0) {
perror ("socket");
exit (1);
}
struct sockaddr_in mon_adresse;
mon_adresse.sin_port = htons(30000);
mon_adresse.sin_family = AF_INET;
mon_adresse.sin_addr.s_addr = htonl(INADDR_ANY);
if (bind (sock, (struct sockaddr*)&mon_adresse, sizeof(mon_adresse)) < 0) {
perror ("bind");
exit (1);
}
if (listen (sock, 5) < 0) {
perror ("listen");
exit (1);
}
while (1) {
struct sockaddr_in adresse_client;
socklen_t lg_adresse_client = sizeof(adresse_client);
nouvelle = accept (sock, (struct sockaddr*)&adresse_client,&lg_adresse_client);
printf("sin_family : %d\nsin_port : %d\nsin addr : %d\n", adresse_client.sin_family, ntohs(adresse_client.sin_port), adresse_client.sin_addr.s_addr);
if (nouvelle < 0) {
perror ("erreur lors de accept");
exit (1);
}
int i = write(nouvelle, 'O', sizeof(char));
printf("écrit : %d; fd : %d\n", i, nouvelle);
perror("erreur de write");
// printf("création d'un thread pour le client\n");
// pthread_t client_t;
// pthread_create(&client_t, NULL, traiter_client, client_socket);
}
} |
Partager