accept_eintr.c

来自「《unix网络编程第二卷》中的源代码」· C语言 代码 · 共 38 行

C
38
字号
#include	"unp.h"/* Let's see if accept() is automatically restarted by the implementation. */voidsig_int(int signo){	printf("received SIGINT\n");	return;}intmain(int argc, char **argv){	int					listenfd, connfd;	socklen_t			clilen;	struct sockaddr_in	cliaddr, servaddr;	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(SIGINT, sig_int);	/* sets SA_RESTART */	for ( ; ; ) {		clilen = sizeof(cliaddr);		connfd = Accept(listenfd, (SA *) &cliaddr, &clilen);			/* error from Accept() if not restarted */	}}

⌨️ 快捷键说明

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