⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 readloop.c

📁 unix网络编程第一卷socket编程书上的全部源代码
💻 C
字号:
#include	"ping.h"voidreadloop(void){	int				size;	char			recvbuf[BUFSIZE];	char			controlbuf[BUFSIZE];	struct msghdr	msg;	struct iovec	iov;	ssize_t			n;	struct timeval	tval;	sockfd = Socket(pr->sasend->sa_family, SOCK_RAW, pr->icmpproto);	setuid(getuid());		/* don't need special permissions any more */	if (pr->finit)		(*pr->finit)();	size = 60 * 1024;		/* OK if setsockopt fails */	setsockopt(sockfd, SOL_SOCKET, SO_RCVBUF, &size, sizeof(size));	sig_alrm(SIGALRM);		/* send first packet */	iov.iov_base = recvbuf;	iov.iov_len = sizeof(recvbuf);	msg.msg_name = pr->sarecv;	msg.msg_iov = &iov;	msg.msg_iovlen = 1;	msg.msg_control = controlbuf;	for ( ; ; ) {		msg.msg_namelen = pr->salen;		msg.msg_controllen = sizeof(controlbuf);		n = recvmsg(sockfd, &msg, 0);		if (n < 0) {			if (errno == EINTR)				continue;			else				err_sys("recvmsg error");		}		Gettimeofday(&tval, NULL);		(*pr->fproc)(recvbuf, n, &msg, &tval);	}}

⌨️ 快捷键说明

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