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

📄 gn_ipv46.c

📁 unix network ,unix network unix network
💻 C
字号:
#include	"gai_hdr.h"/* * Handle either an IPv4 or an IPv6 address and port. *//* include gn_ipv46 */intgn_ipv46(char *host, size_t hostlen, char *serv, size_t servlen,		 void *aptr, size_t alen, int family, int port, int flags){	char			*ptr;	struct hostent	*hptr;	struct servent	*sptr;	if (hostlen > 0) {		if (flags & NI_NUMERICHOST) {			if (inet_ntop(family, aptr, host, hostlen) == NULL)				return(1);		} else {			hptr = gethostbyaddr(aptr, alen, family);			if (hptr != NULL && hptr->h_name != NULL) {				if (flags & NI_NOFQDN) {					if ( (ptr = strchr(hptr->h_name, '.')) != NULL)						*ptr = 0;	/* overwrite first dot */				}				snprintf(host, hostlen, "%s", hptr->h_name);			} else {				if (flags & NI_NAMEREQD)					return(1);				if (inet_ntop(family, aptr, host, hostlen) == NULL)					return(1);			}		}	}	if (servlen > 0) {		if (flags & NI_NUMERICSERV) {			snprintf(serv, servlen, "%d", ntohs(port));		} else {			sptr = getservbyport(port, (flags & NI_DGRAM) ? "udp" : NULL);			if (sptr != NULL && sptr->s_name != NULL)				snprintf(serv, servlen, "%s", sptr->s_name);			else				snprintf(serv, servlen, "%d", ntohs(port));		}	}	return(0);}/* end gn_ipv46 */

⌨️ 快捷键说明

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