#include "server.h" int DROP_TCP_SERVER(const int pPort, int* pListenSock){ if( DEBUGMOD&HDR ) printf("====== DROP_TCP_SERVER(%d, %p) ======\n\n", pPort, (void*) pListenSock); /* [0] Initialisation des variables =========================================================*/ // CREATION static struct sockaddr_in addr; // contiendra les infos du serveur int STATUS; // status // INITIALISATION *pListenSock = -1; /* [1] Création de la socket =======================================================*/ *pListenSock = socket(AF_INET, SOCK_STREAM, 0); if( DEBUGMOD&SCK && DEBUGMOD&HDR ) printf(" * [drop_tcp_server] socket: %d\n", *pListenSock); // si erreur if( *pListenSock < 0 ) return -1; /* [2] On définit les infos de la socket =========================================================*/ /* (1) Reset des valeurs */ bzero(&addr, sizeof(struct sockaddr_in)); /* (2) On définit les infos */ addr.sin_family = AF_INET; addr.sin_port = htons(pPort); addr.sin_addr.s_addr = htonl(INADDR_ANY); /* [3] On publie la SOCKET =======================================================*/ STATUS = bind(*pListenSock, (struct sockaddr*) &addr, sizeof(addr)); if( DEBUGMOD&SCK && DEBUGMOD&HDR ) printf(" * [drop_tcp_server] bind: %d\n", STATUS); // si erreur if( STATUS < 0 ) return -1; /* [4] On met la socket sur écoute =======================================================*/ STATUS = listen(*pListenSock, MAX_TCP_THR); if( DEBUGMOD&SCK && DEBUGMOD&HDR ) printf(" * [drop_tcp_server] listen: %d\n", STATUS); // si erreur if( STATUS < 0 ) return -1; /* [n] Code succès =========================================================*/ return 0; }