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 + -
显示快捷键?