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 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96
|
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <netdb.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <errno.h>
#include <pthread.h>
# include <signal.h>
#include <time.h>
#include "SHM.c"
#define TAILLEBUF 20
void * fn_thread ( void * c )
{
printf("ici");
}
pthread_t thread[NB_THREAD];
int main(int argc, char *argv[]) {
// adresse socket coté client
static struct sockaddr_in addr_client;
// adresse socket locale
static struct sockaddr_in addr_serveur;
// longueur adresse
int lg_addr;
// socket d'écoute et de service
int socket_ecoute, socket_service;
// buffer qui contiendra le message reçu
char message[TAILLEBUF];
// chaîne reçue du client
char *chaine_recue;
// chaîne renvoyée au client
char *reponse = "bien recu";
// nombre d'octets reçus ou envoyés
int nb_octets;
// création socket TCP d'écoute
socket_ecoute = socket(AF_INET, SOCK_STREAM, 0);
if (socket_ecoute == -1) {
perror("creation socket");
exit(1); }
// liaison de la socket d'écoute sur le port 4000
bzero((char *) &addr_serveur, sizeof(addr_serveur));
addr_serveur.sin_family = AF_INET;
addr_serveur.sin_port = htons(4000);
addr_serveur.sin_addr.s_addr=htonl(INADDR_ANY);
if( bind(socket_ecoute,
(struct sockaddr*)&addr_serveur,
sizeof(addr_serveur))== -1 ) {
perror("erreur bind socket écoute");
exit(1);
} // configuration socket écoute : 5 connexions max en attente
if (listen(socket_ecoute, 5) == -1) {
perror("erreur listen");
exit(1);
}
int compteur=0;
while(1){
lg_addr = sizeof(struct sockaddr_in);
socket_service = accept(socket_ecoute,
(struct sockaddr *)&addr_client,
&lg_addr);
if (socket_service == -1) {
perror("erreur accept");
exit(1);
}
int creation_thread=pthread_create(&thread[compteur],NULL,fn_thread,(void *)socket_service);
if(creation_thread!=0)
{
perror("pthread_create");
}
compteur++;
close(socket_service);
}
close(socket_ecoute);
} |
Partager