dgclitimeo3.c

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

C
36
字号
#include	"unp.h"static void	sig_alrm(int);voiddg_cli(FILE *fp, int sockfd, const SA *pservaddr, socklen_t servlen){	int	n;	char	sendline[MAXLINE], recvline[MAXLINE + 1];	Signal(SIGALRM, sig_alrm);	while (Fgets(sendline, MAXLINE, fp) != NULL) {		Sendto(sockfd, sendline, strlen(sendline), 0, pservaddr, servlen);		alarm(5);		if ( (n = recvfrom(sockfd, recvline, MAXLINE, 0, NULL, NULL)) < 0) {			if (errno == EINTR)				fprintf(stderr, "socket timeout\n");			else				err_sys("recvfrom error");		} else {			alarm(0);			recvline[n] = 0;	/* null terminate */			Fputs(recvline, stdout);		}	}}static voidsig_alrm(int signo){	return;			/* just interrupt the recvfrom() */}

⌨️ 快捷键说明

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