dgechoaddr.c

来自「unix 网络编程第三版源代码 unix 网络编程第三版源代码」· C语言 代码 · 共 42 行

C
42
字号
#include	"unp.h"#undef	MAXLINE#define	MAXLINE	20		/* to see datagram truncation */voiddg_echo(int sockfd, SA *pcliaddr, socklen_t clilen){	int				flags;	const int		on = 1;	socklen_t		len;	ssize_t			n;	char			mesg[MAXLINE], str[INET6_ADDRSTRLEN];	struct in_addr	dstaddr;#ifdef	IP_RECVDSTADDR	Setsockopt(sockfd, IPPROTO_IP, IP_RECVDSTADDR, &on, sizeof(on));#endif	for ( ; ; ) {		len = clilen;		flags = 0;		n = Recvfrom_flags(sockfd, mesg, MAXLINE, &flags,						   pcliaddr, &len, &dstaddr);		printf("%d-byte datagram from %s", n, Sock_ntop(pcliaddr, len));		if ((flags & MSG_CTRUNC) == 0)			printf(", to %s", Inet_ntop(AF_INET, &dstaddr, str, sizeof(str)));#ifdef	MSG_TRUNC		if (flags & MSG_TRUNC)	printf(" (datagram truncated)");#endif#ifdef	MSG_BCAST		if (flags & MSG_BCAST)	printf(" (broadcast)");#endif#ifdef	MSG_MCAST		if (flags & MSG_MCAST)	printf(" (multicast)");#endif		printf("\n");		Sendto(sockfd, mesg, n, 0, pcliaddr, clilen);	}}

⌨️ 快捷键说明

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