loop.c

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

C
29
字号
#include	"unp.h"voidloop(int sockfd, socklen_t salen){	char			buf[MAXLINE+1];	socklen_t		len;	ssize_t			n;	struct sockaddr	*sa;	struct sap_packet {	  uint32_t	sap_header;	  uint32_t	sap_src;	  char		sap_data[1];	} *sapptr;	sa = Malloc(salen);	for ( ; ; ) {		len = salen;		n = Recvfrom(sockfd, buf, MAXLINE, 0, sa, &len);		buf[n] = 0;			/* null terminate */		sapptr = (struct sap_packet *) buf;		if ( (n -= 2 * sizeof(uint32_t)) <= 0)			err_quit("n = %d", n);		printf("From %s\n%s\n", Sock_ntop(sa, len), sapptr->sap_data);	}}

⌨️ 快捷键说明

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