#include #include #include #include #include #include #include "libnet.h" #include int sock_fd; struct sigaction action; void handler(int sig) { if(sig==SIGINT) { printf("\nINTERRUPTION SOCKET : %d\n\n", sock_fd); close(sock_fd); exit(1); } } void argPortParsing(int argc, char* argv[], char* port) { struct option port_arg={"port", 1, NULL, 'p'}; // char opt; int longindex; while( (opt=getopt_long(argc, argv, "p:", &port_arg, &longindex)) !='p' && opt!=-1) {} if(opt=='p') { strcpy(port, optarg); //optarg est une variable instanciée dans la librairie getopt printf("%s\n", optarg); } else { printf("La syntaxe doit être de la forme %s -p ou %s --port \n\n", argv[0], argv[0]); } } int main(int argc, char* argv[]) { char port[10]="80"; argPortParsing(argc, argv, port); action.sa_handler=&handler; sigaction(SIGINT, &action, NULL); if( (sock_fd=initialisationServeur(port)) ==-1 ) { fprintf(stderr, "Initialisation du serveur impossible\n"); return -1; } boucleServeur(sock_fd, (void*)&reponseConnexion); return 0; }