tcpserv02.c

来自「《Unix网络编程》的源代码的advio部分」· C语言 代码 · 共 42 行

C
42
字号
#include	"unp.h"intmain(int argc, char **argv){	int					listenfd, connfd;	pid_t				childpid;	socklen_t			clilen;	struct sockaddr_in	cliaddr, servaddr;	void				sig_chld(int);	listenfd = Socket(AF_INET, SOCK_STREAM, 0);	bzero(&servaddr, sizeof(servaddr));	servaddr.sin_family      = AF_INET;	servaddr.sin_addr.s_addr = htonl(INADDR_ANY);	servaddr.sin_port        = htons(SERV_PORT);	Bind(listenfd, (SA *) &servaddr, sizeof(servaddr));	Listen(listenfd, LISTENQ);	Signal(SIGCHLD, sig_chld);	for ( ; ; ) {		clilen = sizeof(cliaddr);		if ( (connfd = accept(listenfd, (SA *) &cliaddr, &clilen)) < 0) {			if (errno == EINTR)				continue;		/* back to for() */			else				err_sys("accept error");		}		if ( (childpid = Fork()) == 0) {	/* child process */			Close(listenfd);	/* close listening socket */			str_echo(connfd);	/* process the request */			exit(0);		}		Close(connfd);			/* parent closes connected socket */	}}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?