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);
		}
	}
}
Exemplo n.º 4
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);
	}
}