func.h

来自「socket编程方面的例子」· C头文件 代码 · 共 46 行

H
46
字号
void error(int status,int err,char *fmt,...)
{
	va_list ap;
	va_start(ap,fmt);
	fprintf(stderr,"%s",program_name);
	vfprintf(stderr,fmt,ap);
	va_end(ap);
	if(err)
	{
		fprintf(stderr,":%s(%d)",strerror(err),err);
	}
	if(status)
		EXIT(status);
}

static void set_address(char *hname,char *sname,struct sockaddr_in *sap,char *protocol)
{
	struct servent *sp;
	struct hostent *hp;
	char *endptr;
	short port;
	bzero(sap,sizeof(*sap));
	sap->sin_family=AF_INET;
	if(hname!=NULL)
	{
		if(!inet_aton(hname,&sap->sin_addr))
		{
			hp=gethostbyname(hname);
			if(hp==NULL)
				error(1,0,"unknown host: %s\n",hname);
			sap->sin_addr=*(struct in_addr*)hp->h_addr;
		}
	}
	else
		sap->sin_addr.s_addr=htonl(INADDR_ANY);
	port=strtol(sname,&endptr,0);
	if(*endptr=='\0')
		sap->sin_port=htons(port);
	else
	{
		sp=getservbyname(sname,protocol);
		if(sp==NULL)
			error(1,0,"unknown service: %s\n",sname);
		sap->sin_port=sp->s_port;
	}
}

⌨️ 快捷键说明

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