int main(int argc, char *arg[]) { char buffer[256]; struct sockaddr_in6 fsin; char *service = "daytime"; int msock, ssock; int alen,pid; msock = passiveTCP(service, QLEN); while (1) { alen = sizeof(fsin); ssock = accept(msock, (struct sockaddr *)&fsin, &alen); if (ssock < 0) { printf("Error in accepting the socket connection\n"); exit(0); } pid=fork(); if(pid==0) { printf("This is a new client request\n"); close(msock); TCPdaytimed(ssock); exit(0); } } close(ssock); }
/*------------------------------------------------------------------------ * main - Iterative TCP server for DAYTIME service *------------------------------------------------------------------------ */ int main(int argc, char *argv[]) { struct sockaddr_in fsin; /* the from address of a client */ char *service = "daytime"; /* service name or port number */ int msock, ssock; /* master & slave sockets */ unsigned int alen; /* from-address length */ switch (argc) { case 1: break; case 2: service = argv[1]; break; default: errexit("usage: TCPdaytimed [port]\n"); } msock = passiveTCP(service, QLEN); while (1) { alen = sizeof(fsin); ssock = accept(msock, (struct sockaddr *)&fsin, &alen); if (ssock < 0) errexit("accept failed: %s\n", strerror(errno)); TCPdaytimed(ssock); (void) close(ssock); } }
/*------------------------------------------------------------------------ * main - Iterative TCP server for DAYTIME service *------------------------------------------------------------------------ */ int main(int argc, char *argv[]) { struct sockaddr_in fsin; /* the from address of a client */ char *service = "daytime"; /* service name or port number */ int msock, ssock; /* master & slave sockets */ unsigned int alen; /* from-address length */ pid_t pid; int status; switch (argc) { case 1: break; case 2: service = argv[1]; break; default: errexit("usage: TCPdaytimed [port]\n"); } msock = passiveTCP(service, QLEN); while (1) { alen = sizeof(fsin); ssock = accept(msock, (struct sockaddr *)&fsin, &alen); if (ssock < 0) errexit("accept failed: %s\n", strerror(errno)); if((pid = fork()) == 0) /*create child process and run if successful*/ { close(msock); /*In slave prcess close master socket*/ printf("\nI am in child process, pid is:%d and parent id is:%d\n", getpid(), getppid()); TCPdaytimed(ssock); /*call tcpdaytimed function*/ (void) close(ssock); /*after function call close slave socket*/ exit(0); } } }
int main(int argc, char *argv[]) { struct sockaddr_in6 fsin, clientadr; /* the from address of a client */ int cliadrlen = sizeof(cliadrlen); memset(&fsin, 0, sizeof(fsin)); char str[INET6_ADDRSTRLEN]; bzero((char *) &fsin, sizeof(fsin)); int msock, ssock; /* master & slave sockets */ socklen_t alen = sizeof(fsin); /* from-address length */ msock = passivesock(QLEN); while (1) { ssock = accept(msock, (struct sockaddr *)&fsin, &alen); getpeername(ssock, (struct sockaddr *)&clientadr, &cliadrlen); if(inet_ntop(AF_INET6, &clientadr.sin6_addr, str, sizeof(str))) { printf("Client address is %s\n", str); printf("Client port is: %d\n", ntohs(clientadr.sin6_port)); } if (ssock < 0) errexit("accept failed: %s\n", strerror(errno)); (void) TCPdaytimed(ssock); (void) close(ssock); } }