connect_timeo.c

来自「非常高效的扫描器」· C语言 代码 · 共 42 行

C
42
字号
#define TIMEOUT 5#include <sys/types.h>#include <sys/socket.h>#include <netinet/in.h>#include <errno.h>#include <stdlib.h>#include <signal.h>#ifdef LINUX#include <sys/time.h>#endiftypedef void Sigfunc (int);void connect_alarm(int signo);intconnect_timeo(int sockfd, struct sockaddr *saptr, int salen, intnsec){int n;alarm(0);signal(SIGALRM,connect_alarm);alarm(TIMEOUT);if( (n = connect(sockfd, (struct sockaddr *) saptr, salen)) < 0) {	close(sockfd);	if(errno == EINTR)	errno = ETIMEDOUT;}alarm(0);signal(SIGALRM, SIG_DFL);return(n);}void connect_alarm(int signo){// printf("DEBUG: connect timed out\n");return;}

⌨️ 快捷键说明

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