#include #include #include #include #include #include #include "srvr_func.h" int srvr_init(unsigned short port) { struct sockaddr_in sad; /* structure to hold an IP address */ int sd; /* socket descriptor */ memset((char *)&sad,0,sizeof(sad)); /* clear sockaddr structure */ sad.sin_family = AF_INET; /* set family to Internet */ sad.sin_port = htons(port) ; sad.sin_addr.s_addr = INADDR_ANY ; /* Create a socket. */ sd = socket(PF_INET, SOCK_STREAM, 0); if (sd < 0) return(-1) ; /* extremely unlikely */ /* Bind the socket to the appropriate port */ if (bind(sd, (struct sockaddr *)&sad, sizeof(sad))) { perror("bind") ; return(-1) ; } if (listen(sd, SOMAXCONN)) return(-1) ; return(sd) ; } int srvr_conn(int rsd) { int csd; /* client connection socket */ struct sockaddr_in clntad; /* structure to hold client IP address */ socklen_t clntadsize ; /* size of client IP address */ clntadsize = sizeof(struct sockaddr_in) ; csd = accept(rsd, (struct sockaddr *)&clntad, &clntadsize) ; return(csd) ; }