sysdis-project/central-manager/lib/network/udp/server.c

58 lines
1.4 KiB
C
Raw Normal View History

2017-04-01 15:01:36 +00:00
#include "server.h"
int DROP_UDP_SERVER(const int pPort, int* pListenSock, struct sockaddr_in* pInfo){
2017-04-01 15:01:36 +00:00
if( DEBUGMOD&HDR ) printf("====== DROP_UDP_SERVER(%d, %p) ======\n\n", pPort, (void*) pListenSock);
/* [0] Initialisation des variables
=========================================================*/
// CREATION
int STATUS; // status
2017-04-01 15:01:36 +00:00
// INITIALISATION
*pListenSock = -1;
/* [1] Création de la socket
=======================================================*/
*pListenSock = socket(AF_INET, SOCK_DGRAM, 0);
2017-04-07 18:25:53 +00:00
if( DEBUGMOD&SCK&HDR ) printf(" * [drop_udp_server] socket: %d\n", *pListenSock);
2017-04-01 15:01:36 +00:00
// si erreur
if( *pListenSock < 0 ) return -1;
/* [2] On définit les infos de la socket
=========================================================*/
/* (1) Reset des valeurs */
bzero(pInfo, sizeof(struct sockaddr_in));
2017-04-01 15:01:36 +00:00
/* (2) On définit les infos */
pInfo->sin_family = AF_INET;
pInfo->sin_port = htons(pPort);
pInfo->sin_addr.s_addr = htonl(INADDR_ANY);
2017-04-01 15:01:36 +00:00
/* [3] On publie la SOCKET
=======================================================*/
STATUS = bind(*pListenSock, (struct sockaddr*) pInfo, sizeof(struct sockaddr_in));
2017-04-01 15:01:36 +00:00
2017-04-07 18:25:53 +00:00
if( DEBUGMOD&SCK&HDR ) printf(" * [drop_udp_server] bind: %d\n", STATUS);
2017-04-01 15:01:36 +00:00
// si erreur
if( STATUS < 0 ) return -1;
/* [n] Code succès
=========================================================*/
return 0;
}