/************************** * TCP Server Dependency * *************************** * Designed & Developed by * * Adrien Marquès * * * *************************** * doowap31@gmail.com * **************************/ #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 =========================================================*/ static struct sockaddr_in addr; // contiendra les infos du serveur int STATUS; // status *pListenSock = -1; /* [1] Création de la socket =======================================================*/ /* 1. Création socket */ *pListenSock = socket(AF_INET, SOCK_STREAM, 0); if( DEBUGMOD&SCK && DEBUGMOD&HDR ) printf(" * [drop_tcp_server] socket: %d\n", *pListenSock); /* 2. Gestion 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 =======================================================*/ /* 1. Publication socket */ STATUS = bind(*pListenSock, (struct sockaddr*) &addr, sizeof(addr)); if( DEBUGMOD&SCK && DEBUGMOD&HDR ) printf(" * [drop_tcp_server] bind: %d\n", STATUS); /* 2. Gestion erreur */ if( STATUS < 0 ) return -1; /* [4] On met la socket sur écoute =======================================================*/ /* 1. Démarrage écoute */ STATUS = listen(*pListenSock, MAX_TCP_THR); if( DEBUGMOD&SCK && DEBUGMOD&HDR ) printf(" * [drop_tcp_server] listen: %d\n", STATUS); /* 2. Gestion erreur */ if( STATUS < 0 ) return -1; /* [n] Code succès =========================================================*/ return 0; }