Example #1
0
int main(int argc,char **argv)
{
	int listenfd,connfd;
	socklen_t len,addrlen;
	char host[NI_MAXHOST],serv[NI_MAXSERV],buff[MAXLINE];
	time_t ticks;
	struct sockaddr_storage cliaddr;

	if(argc == 2)
		listenfd = Tcp_listen(NULL,argv[1],&addrlen);
	else if(argc == 3)
		listenfd = Tcp_listen(argv[1],argv[2],&addrlen);
	else
		err_quit("usage:daytimetcpsrv2 [ <host> ] <service or port#>");


	for( ; ; ){
		len = sizeof(cliaddr);
		connfd = Accept(listenfd,(SA *)&cliaddr,&len);
		if(getnameinfo((SA *)&cliaddr,len,host,NI_MAXHOST,serv,NI_MAXSERV,
					NI_NUMERICHOST|NI_NUMERICSERV) != 0)
			err_quit("getnameinfo error");

		printf("connection from %s.%s\n",host,serv);

		ticks = time(NULL);
		snprintf(buff,sizeof(buff),"%.24s\r\n",ctime(&ticks));
		Write(connfd,buff,strlen(buff));

		Close(connfd);
	}
}
Example #2
0
int main(int argc, char** argv)
{
    int listenfd, connfd;
    void sig_int(int), web_child(int);
    socklen_t clilen, addrlen;
    struct sockaddr* cliaddr;

    if (argc == 2)
        listenfd = Tcp_listen(NULL, argv[1], &addrlen);
    else if (argc == 3)
        listenfd = Tcp_listen(argv[1], argv[2], &addrlen);
    else
        err_quit("usage: serv00 [ <host> ] <port#>");
    cliaddr = Malloc(addrlen);

    Signal(SIGINT, sig_int);

    for (;;) {
        clilen = addrlen;
        connfd = Accept(listenfd, cliaddr, &clilen);

        web_child(connfd); /* process the request */

        Close(connfd); /* parent closes connected socket */
    }
}
Example #3
0
int main(int argc, char **argv) {
    int listenfd, connfd;
    socklen_t addrlen, len;
    struct sockaddr *cliaddr;
    char buff[MAXLINE];
    time_t ticks;

    if (argc < 2 || argc > 3)
        err_quit("usage: daytimetcpsrv2 [ <host> ] <service or port#>");

    daemon_init(argv[0], 0);

    if (argc == 2)
        listenfd = Tcp_listen(NULL, argv[1], &addrlen);
    else
        listenfd = Tcp_listen(argv[1], argv[2], &addrlen);

    cliaddr = Malloc(addrlen);

    for (;;) {
        len = addrlen;
        connfd = Accept(listenfd, cliaddr, &len);
        err_msg("connection from %s", Sock_ntop(cliaddr, len));
        ticks = time(NULL);
        snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));
        Write(connfd, buff, strlen(buff));
        Close(connfd);
    }
}
	int
main(int argc, char **argv)
{
	int			listenfd, i;
	socklen_t	addrlen;
	void		sig_int(int);
	pid_t		child_make(int, int, int);

	if (argc == 3)
		listenfd = Tcp_listen(NULL, argv[1], &addrlen);
	else if (argc == 4)
		listenfd = Tcp_listen(argv[1], argv[2], &addrlen);
	else
		err_quit("usage: ./server_prefork_meter [ <host> ] <port#> <#children>");
	nchildren = atoi(argv[argc-1]);
	pids = calloc(nchildren, sizeof(pid_t));
	cptr = meter(nchildren);
	if(pids == NULL)
	{
		err_sys("calloc");
	}

	for (i = 0; i < nchildren; i++)
		pids[i] = child_make(i, listenfd, addrlen);	/* parent returns */

	if (signal(SIGINT, sig_int) == SIG_ERR)
		perror("signal SIGINT");

	for ( ; ; )
		pause();	/* everything done by children */
}
Example #5
0
int
main(int argc, char **argv)
{
  int       listenfd, connfd;
  void      sig_int(int);
  void      *doit(void *);
  pthread_t   tid;
  socklen_t   clilen, addrlen;
  struct sockaddr *cliaddr;

  if (argc == 2)
    listenfd = Tcp_listen(NULL, argv[1], &addrlen);
  else if (argc == 3)
    listenfd = Tcp_listen(argv[1], argv[2], &addrlen);
  else
    err_quit("usage: serv06 [ <host> ] <port#>");
  cliaddr = Malloc(addrlen);

  Signal(SIGINT, sig_int);

  for ( ; ; ) {
    clilen = addrlen;
    connfd = Accept(listenfd, cliaddr, &clilen);

    Pthread_create(&tid, NULL, &doit, (void *) connfd);
  }
}
Example #6
0
//=============================main function============================
int main(int argc,char **argv)
{
	int listenfd,connfd;
	pid_t childpid;
	socklen_t clilen,addrlen;
	struct sockaddr *cliaddr;

	if (argc == 2)
		listenfd = Tcp_listen(NULL,argv[1],&addrlen);
	else if (argc == 3)
		listenfd = Tcp_listen(argv[1],argv[2],&addrlen);
	else
		err_quit("usage: server [<host>] <port#>");

	cliaddr = Malloc(addrlen);

	Signal(SIGCHLD,sig_chld);
	Signal(SIGINT,sig_int);

	for (;;) {
		clilen = addrlen;
		if ((connfd = accept(listenfd,cliaddr,&clilen))<0) {
			if (errno == EINTR)
				continue;
			else
				err_sys("accept error");
		}
		if ((childpid == Fork()) == 0) {
			Close(listenfd);
			web_child(connfd);
			exit(0);
		}
		Close(connfd);
	}
}
Example #7
0
int
main(int argc, char **argv)
{
	int		listenfd, connfd, n, on=1;
	char	buff[100];

	if (argc == 2)
		listenfd = Tcp_listen(NULL, argv[1], NULL);
	else if (argc == 3)
		listenfd = Tcp_listen(argv[1], argv[2], NULL);
	else
		err_quit("usage: tcprecv06 [ <host> ] <port#>");

	Setsockopt(listenfd, SOL_SOCKET, SO_OOBINLINE, &on, sizeof(on));

	connfd = Accept(listenfd, NULL, NULL);
	sleep(5);

	for ( ; ; ) {
		if (Sockatmark(connfd))
			printf("at OOB mark\n");

		if ( (n = Read(connfd, buff, sizeof(buff)-1)) == 0) {
			printf("received EOF\n");
			exit(0);
		}
		buff[n] = 0;	/* null terminate */
		printf("read %d bytes: %s\n", n, buff);
	}
}
Example #8
0
int main(int argc,char *argv[]) {
	int listenfd,connfd;
	pid_t pid;
	socklen_t servlen,clilen;
	struct sockaddr *cliaddr;

	if(argc == 2)
		listenfd =Tcp_listen(NULL,argv[1],&servlen);
	else if(argc == 3)
		listenfd = Tcp_listen(argv[0],argv[1],&servlen);
	else
		err_quit("usage: serv01 [<host or IPAddr>] <#port>");
	
	Signal(SIGCHLD,sig_chld);
	Signal(SIGINT,sig_int);
	cliaddr = malloc(servlen);
	for(;;) {
		clilen = servlen;
		if((connfd = accept(listenfd,cliaddr,&clilen)) < 0){
			if(errno == EINTR)
				continue;
			else
				err_quit("accept error");
		}
		
		if((pid = fork()) == 0) {
			Close(listenfd);
			child_web(connfd);
			exit(0);
		}

		Close(connfd);
	}
}
Example #9
0
int main(int argc, char** argv)
{
    int listenfd, connfd;
    socklen_t addrlen, len;
    struct sockaddr* cliaddr;
    char buff[MAXLINE], host[NI_MAXHOST], serv[NI_MAXSERV];
    time_t ticks;

    if (argc == 2)
        listenfd = Tcp_listen(NULL, argv[1], &addrlen);
    else if (argc == 3)
        listenfd = Tcp_listen(argv[1], argv[2], &addrlen);
    else
        err_quit("usage: daytimetcpsrv4 [ <host> ] <service or port>");

    cliaddr = Malloc(addrlen);

    for (;;) {
        len = addrlen;
        connfd = Accept(listenfd, cliaddr, &len);
        if (getnameinfo(cliaddr, len, host, NI_MAXHOST, serv, NI_MAXSERV,
                        NI_NUMERICHOST | NI_NUMERICSERV) == 0)
            printf("connection from %s.%s\n", host, serv);

        ticks = time(NULL);
        snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));
        Write(connfd, buff, strlen(buff));

        Close(connfd);
    }
}
Example #10
0
File: serv01.c Project: rkks/refer
int
main(int argc, char **argv)
{
	int				listenfd, connfd;
	pid_t			childpid;
	void			sig_chld(int), sig_int(int), web_child(int);
	socklen_t		addrlen;
	struct netbuf	cliaddr;

	if (argc == 2)
		listenfd = Tcp_listen(NULL, argv[1], &addrlen);
	else if (argc == 3)
		listenfd = Tcp_listen(argv[1], argv[2], &addrlen);
	else
		err_quit("usage: serv01 [ <host> ] <port#>");
	cliaddr.buf = Malloc(addrlen);
	cliaddr.maxlen = addrlen;

	Signal(SIGCHLD, sig_chld);
	Signal(SIGINT, sig_int);

	for ( ; ; ) {
		connfd = Xti_accept(listenfd, &cliaddr, 1);
		printf("connection from %s\n", Xti_ntop(&cliaddr));

		if ( (childpid = Fork()) == 0) {	/* child process */
			Close(listenfd);	/* close listening socket */
			web_child(connfd);	/* process the request */
			exit(0);
		}
		Close(connfd);			/* parent closes connected socket */
	}
}
Example #11
0
int main(int argc, char** argv)
{
    int listenfd, connfd;
    socklen_t len, addrlen;
    char buff[MAXLINE];
    time_t ticks;
    struct sockaddr_storage cliaddr;

    if (argc == 2)
        listenfd = Tcp_listen(NULL, argv[1], &addrlen);
    else if (argc == 3)
        listenfd = Tcp_listen(argv[1], argv[2], &addrlen);
    else
        err_quit("usage: daytimetcpsrv2 [ <host> ] <service or port>");

    for (;;) {
        len = sizeof(cliaddr);
        connfd = Accept(listenfd, (SA*)&cliaddr, &len);
        printf("connection from %s\n", Sock_ntop((SA*)&cliaddr, len));

        ticks = time(NULL);
        snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));
        Write(connfd, buff, strlen(buff));

        Close(connfd);
    }
}
Example #12
0
int main(int argc, char *argv[])
{
	int listenfd , i;
	socklen_t addrlen;
	void sig_int(int);
	pid_t child_make(int,int,int);

	if(argc == 3)
		listenfd = Tcp_listen(NULL, argv[1], &addrlen);
	else if(argc == 4)
		listenfd = Tcp_listen(argv[1], argv[2], &addrlen);
	else
		err_quit("usage: serv02 [<host>] <port#> <#children>");

	nchildren = atoi(argv[argc-1]);
	pids = (pid_t*)Calloc(nchildren, sizeof(pid_t));

	
	cptr = meter(nchildren);

	for (i = 0; i < nchildren; ++i)
	{
		/* code */
		pids[i] = child_make(i, listenfd, addrlen);
	}

	Signal(SIGINT, sig_int);
	for(;;)
		pause();
}
int
main(int argc, char *argv[])
{
     int listenfd, connfd;
     socklen_t len, addrlen;
     struct sockaddr *cliaddr;

     pthread_t tid;

     if (argc == 2) {
          listenfd = Tcp_listen(NULL, argv[1], &addrlen);
          
     }
     if (argc == 3) {
          listenfd = Tcp_listen(argv[1], argv[2],&addrlen);
     }
     if (argc != 3 && argc != 2) {
          err_quit("usage : tcpserver_thread [<host>] <port or service>");
     }

     cliaddr = Malloc(addrlen);

     for ( ;  ;  ) {
          len = addrlen;
          connfd = Accept(listenfd, cliaddr, &len);
          Pthread_create(&tid, NULL, &doit, (void*)connfd);
          
     }
     return 0;
}
Example #14
0
int
main(int argc, char **argv)
{
	int				listenfd, connfd, n, flags;
	char			buff[MAXLINE];
	struct pollfd	fds[1];

	if (argc == 2)
		listenfd = Tcp_listen(NULL, argv[1], NULL);
	else if (argc == 3)
		listenfd = Tcp_listen(argv[1], argv[2], NULL);
	else
		err_quit("usage: daytimetcpsrv01 [ <host> ] <service or port>");
	
	connfd = Xti_accept(listenfd, NULL, 0);

	fds[0].fd = connfd;
	fds[0].events = POLLIN | POLLRDNORM | POLLRDBAND | POLLPRI;
	for ( ; ; ) {
		n = poll(fds, 1, INFTIM);
		printf("poll returned %d, revents = 0x%x\n", n, fds[0].revents);

		n = T_rcv(connfd, buff, sizeof(buff), &flags);
		printf("received %d bytes, flags = %d\n", n, flags);
	}
}
Example #15
0
int main(int argc, char **argv)
{
	int		n;
	char	buff[100];

	if (argc == 2)
		listenfd = Tcp_listen(NULL, argv[1], NULL);
	else if (argc == 3)
		listenfd = Tcp_listen(argv[1], argv[2], NULL);
	else
		err_quit("usage: tcprecv01 [ <host> ] <port#>");

	connfd = Accept(listenfd, NULL, NULL);

	Signal(SIGURG, sig_urg);
	Fcntl(connfd, F_SETOWN, getpid());// set shuzu

	for ( ; ; ) {
		if ( (n = Read(connfd, buff, sizeof(buff)-1)) == 0) {
			printf("received EOF\n");
			exit(0);
		}
		buff[n] = 0;	/* null terminate */
		printf("read %d bytes: %s\n", n, buff);
	}
}
Example #16
0
int
main(int argc, char **argv)
{
	int			listenfd, i;
	socklen_t	addrlen;
	void		sig_int(int);
	pid_t		child_make(int, int, int);

	if (argc == 3)
		listenfd = Tcp_listen(NULL, argv[1], &addrlen);
	else if (argc == 4)
		listenfd = Tcp_listen(argv[1], argv[2], &addrlen);
	else
		err_quit("usage: serv03 [ <host> ] <port#> <#children>");
	nchildren = atoi(argv[argc-1]);
	pids = Calloc(nchildren, sizeof(pid_t));
	cptr = meter(nchildren);

	my_lock_init("/tmp/lock.XXXXXX");	/* one lock file for all children */
	for (i = 0; i < nchildren; i++)
		pids[i] = child_make(i, listenfd, addrlen);	/* parent returns */

	Signal(SIGINT, sig_int);

	for ( ; ; )
		pause();	/* everything done by children */
}
Example #17
0
int main(int argc,char *argv[])
{
    void thread_make(int);
    int i,nthreads;
    socklen_t addrlen;

    if(argc<3||argc>4)
        err_quit("usage:server [<host>] <port#> <#threads>");

    daemon_init(argv[0],0);  /*守护进程化当前进程*/

    if(argc==3)
    {
        listenfd=Tcp_listen(NULL,argv[1],&addrlen);
    }
    else if(argc==4)
    {
        listenfd=Tcp_listen(argv[1],argv[2],&addrlen);
    }

    nthreads=atoi(argv[argc-1]);
    tptr=Calloc(nthreads,sizeof(pthread_t));
    for(i=0; i<nthreads; i++)
    {
        thread_make(i);
    }
    for(;;)
        pause();
}
Example #18
0
int main(int argc, char const *argv[])
{
	int n;
	char buff[100];

	if (argc==2)
	{
		listenfd=Tcp_listen(NULL,argv[1],NULL);
	}
	else if (argc==3)
	{
		listenfd=Tcp_listen(argv[1],argv[2],NULL)
	}
	else
		err_quit("useage: tcprecv [<host>] <port#>");

	connfd=Accept(listenfd,NULL,NULL);

	Signal(SIGURG,sig_urg);
	Fcntl(connfd,F_SETOWN,getpid());

	for (; ; )
	{
		if ((n=Read(connfd,buff,sizeof(buff)-1))==0)
		{
			printf("received EOF\n" );
			exit(0);
		}
		buff[n]=0;
		printf("read %d bytes:%s\n",n,buff );
	}
	return 0;
}
Example #19
0
int main(int argc, char** argv)
{
	int listenfd, connfd;
	pthread_t tid;
	socklen_t addrlen, len;
	struct sockaddr* cliaddr;
	
	if(argc == 2)
	{
		listenfd = Tcp_listen(NULL, argv[1], &addrlen);
	}
	else if(argc == 3)
	{
		listenfd = Tcp_listen(argv[1], argv[2], &addrlen);
	}
	else
	{
		err_quit("usage: tcpserv01 [<host>] <service or port>");
	}
	
	cliaddr = Malloc(addrlen);
	
	while(1)
	{
		len = addrlen;
		connfd = Accept(listenfd, cliaddr, &len);
		Pthread_create(&tid, NULL, &doit, (void*)&connfd);
	}
}
Example #20
0
int
main(int argc, char **argv)
{
	int		n, flags;
	char	buff[NREAD+1];		/* +1 for null at end */

	if (argc == 2)
		listenfd = Tcp_listen(NULL, argv[1], NULL);
	else if (argc == 3)
		listenfd = Tcp_listen(argv[1], argv[2], NULL);
	else
		err_quit("usage: tcprecv02 [ <host> ] <port#>");

	connfd = Xti_accept(listenfd, NULL, NULL);

	Signal(SIGPOLL, sig_poll);
	Ioctl(connfd, I_SETSIG, S_RDNORM);

	for ( ; ; ) {
		flags = 0;
		if ( (n = t_rcv(connfd, buff, NREAD, &flags)) < 0) {
			if (t_errno == TLOOK) {
				if ( (n = T_look(connfd)) == T_ORDREL) {
					printf("received T_ORDREL\n");
					exit(0);
				} else
					err_quit("unexpected event after t_rcv: %d", n);
			}
			err_xti("t_rcv error");
		}
		buff[n] = 0;	/* null terminate */
		printf("read %d bytes: %s, flags = %s\n",
			   n, buff, Xti_flags_str(flags));
	}
}
Example #21
0
int
main(int argc, char **argv)
{
	int				i, listenfd, connfd;
	socklen_t		addrlen, len;
	struct sockaddr	*cliaddr;
	char			buff[MAXLINE];
	time_t			ticks;

	if (argc == 2)
		listenfd = Tcp_listen(NULL, argv[1], &addrlen);
	else if (argc == 3)
		listenfd = Tcp_listen(argv[1], argv[2], &addrlen);
	else
		err_quit("usage: daytimetcpsrv2 [ <host> ] <service or port>");

	cliaddr = Malloc(addrlen);

	for ( ; ; ) {
		len = addrlen;
		connfd = Accept(listenfd, cliaddr, &len);
		printf("connection from %s\n", Sock_ntop(cliaddr, len));

        ticks = time(NULL);
        snprintf(buff, sizeof(buff), "%.24s\r\n", ctime(&ticks));
		for (i = 0; i < strlen(buff); i++)
        	Send(connfd, &buff[i], 1, MSG_EOR);

		Close(connfd);
	}
}
int
main(int argc, char **argv)
{
	int				listenfd_e,listenfd_t, *iptr,*jptr;
	char port_echo[6],port_time[6];
	pthread_t		tid;
	socklen_t		addrlen, len;
	struct sockaddr	*cliaddr;
	int			maxfdp1;
	fd_set		rset;
	
	strcpy(port_echo,"9870");  //assumed to be the well-known port number for echo service
	strcpy(port_time,"9880");  //assumed to be the well-known port number for time service

    listenfd_e = Tcp_listen(NULL, port_echo, &addrlen); //set up listening socket for echo service
	listenfd_t= Tcp_listen(NULL, port_time, NULL);  //set up listening socket for time service
	
	cliaddr = Malloc(addrlen);
	FD_ZERO(&rset);

	for ( ; ; ) {
		len = addrlen;
		iptr = Malloc(sizeof(int));
		jptr = Malloc(sizeof(int));

		FD_SET(listenfd_e, &rset);
		FD_SET(listenfd_t, &rset);
		maxfdp1 = max(listenfd_e,listenfd_t) + 1;
	//	printf("Entering main select...");
		Select(maxfdp1, &rset, NULL, NULL, NULL);
	//	printf("Exited main select");

		if (FD_ISSET(listenfd_e, &rset)) 
		{	// Listening socket for echo service is readable 
          	 *iptr = Accept(listenfd_e, cliaddr, &len);
		     Pthread_create(&tid, NULL, &doecho, iptr);
		}

		
		if (FD_ISSET(listenfd_t, &rset)) 
		{	// Listening socket for time service is readable
	          	*jptr = Accept(listenfd_t, cliaddr, &len);
				Pthread_create(&tid, NULL, &dotime, jptr);
		}


	}
}
int
main(int argc, char *argv[])
{
     int listenfd, i;
     socklen_t addrlen;
     void sig_int(int);
     pid_t child_make(int, int,int);
     void my_lock_init(char *);
     void my_lock_wait();
     void my_lock_release();



     

     if (argc == 3) {
          listenfd = Tcp_listen(NULL, argv[1], &addrlen);
     }
     if (argc == 4) {
          listenfd = Tcp_listen(argv[1], argv[2], &addrlen);
          
     }
     if (argc != 3 && argc != 4) {
          err_quit("usage: prefork_server01 [<host>] <port#> <#children>");
     }

     nchildren = atoi(argv[argc-1]);

     pids = Calloc(nchildren, sizeof(pid_t));

     my_lock_init("/tmp/lock.XXXXXX");

     for (i=0 ;i < nchildren ;i++  ) {
          pids[i] = child_make(i, listenfd, addrlen);
          
     }

     Signal(SIGINT, sig_int);

     for ( ;   ;  ) {
          pause();              /* 実際の処理は子プロセスが行う */
          
     }

     return 0;
}
int
server_socket(const char *host,const char *portnum){
     int listenfd;
     socklen_t addrlen;
     
     listenfd = Tcp_listen(host, portnum, &addrlen);
     return (listenfd);
}
Example #25
0
int
main(int argc, char **argv)
{
	int		listenfd, connfd, n, justreadoob = 0;
	char	buff[100];
	fd_set	rset, xset;

	if (argc == 2)
		listenfd = Tcp_listen(NULL, argv[1], NULL);
	else if (argc == 3)
		listenfd = Tcp_listen(argv[1], argv[2], NULL);
	else
		err_quit("usage: tcprecv03 [ <host> ] <port#>");

	connfd = Accept(listenfd, NULL, NULL);

	FD_ZERO(&rset);
	FD_ZERO(&xset);
	for ( ; ; ) {
		FD_SET(connfd, &rset);
		if (justreadoob == 0)
			FD_SET(connfd, &xset);

		Select(connfd + 1, &rset, NULL, &xset, NULL);

		if (FD_ISSET(connfd, &xset)) {
			n = Recv(connfd, buff, sizeof(buff)-1, MSG_OOB);
			buff[n] = 0;		/* null terminate */
			printf("read %d OOB byte: %s\n", n, buff);
			justreadoob = 1;
			FD_CLR(connfd, &xset);
		}

		if (FD_ISSET(connfd, &rset)) {
			if ( (n = Read(connfd, buff, sizeof(buff)-1)) == 0) {
				printf("received EOF\n");
				exit(0);
			}
			buff[n] = 0;	/* null terminate */
			printf("read %d bytes: %s\n", n, buff);
			justreadoob = 0;
		}
	}
}
Example #26
0
int
main(int argc, char **argv)
{
	int		n, flags;
	char	buff[NREAD+1];		/* +1 for null at end */
	struct pollfd	pollfd[1];

	if (argc == 2)
		listenfd = Tcp_listen(NULL, argv[1], NULL);
	else if (argc == 3)
		listenfd = Tcp_listen(argv[1], argv[2], NULL);
	else
		err_quit("usage: tcprecv05 [ <host> ] <port#>");

	connfd = Xti_accept(listenfd, NULL, NULL);
	sleep(5);

	pollfd[0].fd = connfd;
	pollfd[0].events = POLLIN;

	for ( ; ; ) {
		Poll(pollfd, 1, INFTIM);

		printf("revents = %x\n", pollfd[0].revents);
		if (pollfd[0].revents & POLLIN) {
			flags = 0;
			if ( (n = t_rcv(connfd, buff, NREAD, &flags)) < 0) {
				if (t_errno == TLOOK) {
					if ( (n = T_look(connfd)) == T_ORDREL) {
						printf("received T_ORDREL\n");
						exit(0);
					} else
						err_quit("unexpected event after t_rcv: %d", n);
				}
				err_xti("t_rcv error");
			}
			buff[n] = 0;	/* null terminate */
			printf("read %d bytes: %s, flags = %s\n",
				   n, buff, Xti_flags_str(flags));
		}
	}
}
	int
main(int argc, char **argv)
{
	int					listenfd, connfd;
	void				sig_int(int), web_child(int);
	socklen_t			clilen, addrlen;
	struct sockaddr		*cliaddr;

	if (argc == 2)
		listenfd = Tcp_listen(NULL, argv[1], &addrlen);
	else if (argc == 3)
		listenfd = Tcp_listen(argv[1], argv[2], &addrlen);
	else
		err_quit("usage: serv01 [ <host> ] <port#>");
	cliaddr = malloc(addrlen);
	if(cliaddr == NULL)
	{
		err_sys("malloc");
	}

	if (signal(SIGINT, sig_int) == SIG_ERR)
		perror("signal SIGINT:");

	int  i = 0;
	for ( ; ; ) {
		if(i % 1000 == 0)
		{
			printf("i == %d\n", i);
		}
		clilen = addrlen;
		if ( (connfd = accept(listenfd, cliaddr, &clilen)) < 0) {
			if (errno == EINTR)
				continue;		/* back to for() */
			else
				err_sys("accept error");
		}
		web_child(connfd);	/* process request */
		close(connfd);
		i++;
	}
}
Example #28
0
int
main(int argc, char **argv)
{
	int		size;

	if (argc == 2)
		listenfd = Tcp_listen(NULL, argv[1], NULL);
	else if (argc == 3)
		listenfd = Tcp_listen(argv[1], argv[2], NULL);
	else
		err_quit("usage: tcprecv05 [ <host> ] <port#>");

	size = 4096;
	Setsockopt(listenfd, SOL_SOCKET, SO_RCVBUF, &size, sizeof(size));

	connfd = Accept(listenfd, NULL, NULL);

	Signal(SIGURG, sig_urg);
	Fcntl(connfd, F_SETOWN, getpid());

	for ( ; ; )
		pause();
}
Example #29
0
File: serv09.c Project: rkks/refer
int
main(int argc, char **argv)
{
	int		i;
	void	sig_int(int), thread_make(int);

	if (argc == 3)
		listenfd = Tcp_listen(NULL, argv[1], &addrlen);
	else if (argc == 4)
		listenfd = Tcp_listen(argv[1], argv[2], &addrlen);
	else
		err_quit("usage: serv09 [ <host> ] <port#> <#threads>");
	nthreads = atoi(argv[argc-1]);
	tptr = Calloc(nthreads, sizeof(Thread));

	for (i = 0; i < nthreads; i++)
		thread_make(i);			/* only main thread returns */

	Signal(SIGINT, sig_int);

	for ( ; ; )
		pause();	/* everything done by threads */
}
Example #30
0
int main(int argc,char *argv[])
{
	int	n;
	char	buf[100];
	if(argc == 2)
		listenfd = Tcp_listen(NULL,argv[1],NULL);
	else if(argc == 3)
		listenfd = Tcp_listen(argv[1],argv[2],NULL);
	else
		err_quit("usage:tcprecv01 [<host>] <service>");
	
	acceptfd = Accept(listenfd,NULL,NULL);
	signal(SIGURG,sig_urg);
	fcntl(acceptfd,F_SETOWN,getpid());
	for(;;){
		if((n = Read(sockfd,buf,sizeof(buf)-1)) == 0){
			printf("received EOF\n");
			exit(0);
		}
		buf[n] = 0;
		printf("read %d normal bytes:%s\n",n,buf);
	}
}